diff --git a/querydsl-core/src/main/java/com/querydsl/core/types/dsl/BooleanExpression.java b/querydsl-core/src/main/java/com/querydsl/core/types/dsl/BooleanExpression.java index 164883098..e4b1ac94b 100644 --- a/querydsl-core/src/main/java/com/querydsl/core/types/dsl/BooleanExpression.java +++ b/querydsl-core/src/main/java/com/querydsl/core/types/dsl/BooleanExpression.java @@ -154,4 +154,27 @@ public abstract class BooleanExpression extends LiteralExpression imple return eqFalse; } } + + /** + * Create a {@code nullif(this, other)} expression + * + * @param other + * @return nullif(this, other) + */ + @Override + public BooleanExpression nullif(Expression other) { + return Expressions.booleanOperation(Ops.NULLIF, mixin, other); + } + + /** + * Create a {@code nullif(this, other)} expression + * + * @param other + * @return nullif(this, other) + */ + @Override + public BooleanExpression nullif(Boolean other) { + return nullif(ConstantImpl.create(other)); + } + } diff --git a/querydsl-core/src/main/java/com/querydsl/core/types/dsl/ComparableExpression.java b/querydsl-core/src/main/java/com/querydsl/core/types/dsl/ComparableExpression.java index ad839aee9..3741d6fc0 100644 --- a/querydsl-core/src/main/java/com/querydsl/core/types/dsl/ComparableExpression.java +++ b/querydsl-core/src/main/java/com/querydsl/core/types/dsl/ComparableExpression.java @@ -387,4 +387,27 @@ public abstract class ComparableExpression extends Compara return Expressions.comparableOperation(getType(), Ops.AggOps.MAX_AGG, mixin); } + /** + * Create a {@code nullif(this, other)} expression + * + * @param other + * @return nullif(this, other) + */ + @Override + public ComparableExpression nullif(Expression other) { + return Expressions.comparableOperation(this.getType(), Ops.NULLIF, mixin, other); + } + + /** + * Create a {@code nullif(this, other)} expression + * + * @param other + * @return nullif(this, other) + */ + @Override + public ComparableExpression nullif(T other) { + return nullif(ConstantImpl.create(other)); + } + + } diff --git a/querydsl-core/src/main/java/com/querydsl/core/types/dsl/ComparableExpressionBase.java b/querydsl-core/src/main/java/com/querydsl/core/types/dsl/ComparableExpressionBase.java index d5616a165..53ba523a8 100644 --- a/querydsl-core/src/main/java/com/querydsl/core/types/dsl/ComparableExpressionBase.java +++ b/querydsl-core/src/main/java/com/querydsl/core/types/dsl/ComparableExpressionBase.java @@ -88,8 +88,8 @@ public abstract class ComparableExpressionBase extends Sim * @return nullif(this, other) */ @Override - public ComparableExpression nullif(Expression other) { - return Expressions.comparableOperation(this.getType(), Ops.NULLIF, this, other); + public ComparableExpressionBase nullif(Expression other) { + return Expressions.comparableOperation(this.getType(), Ops.NULLIF, mixin, other); } /** @@ -99,7 +99,7 @@ public abstract class ComparableExpressionBase extends Sim * @return nullif(this, other) */ @Override - public ComparableExpression nullif(T other) { + public ComparableExpressionBase nullif(T other) { return nullif(ConstantImpl.create(other)); } diff --git a/querydsl-core/src/main/java/com/querydsl/core/types/dsl/DateExpression.java b/querydsl-core/src/main/java/com/querydsl/core/types/dsl/DateExpression.java index bb4c8791b..16c9ff5fc 100644 --- a/querydsl-core/src/main/java/com/querydsl/core/types/dsl/DateExpression.java +++ b/querydsl-core/src/main/java/com/querydsl/core/types/dsl/DateExpression.java @@ -15,6 +15,7 @@ package com.querydsl.core.types.dsl; import java.util.Date; +import com.querydsl.core.types.ConstantImpl; import org.jetbrains.annotations.Nullable; import com.querydsl.core.types.Expression; @@ -204,4 +205,27 @@ public abstract class DateExpression extends TemporalExpre } return yearWeek; } + + /** + * Create a {@code nullif(this, other)} expression + * + * @param other + * @return nullif(this, other) + */ + @Override + public DateExpression nullif(Expression other) { + return Expressions.dateOperation(getType(), Ops.NULLIF, mixin, other); + } + + /** + * Create a {@code nullif(this, other)} expression + * + * @param other + * @return nullif(this, other) + */ + @Override + public DateExpression nullif(T other) { + return nullif(ConstantImpl.create(other)); + } + } diff --git a/querydsl-core/src/main/java/com/querydsl/core/types/dsl/DateTimeExpression.java b/querydsl-core/src/main/java/com/querydsl/core/types/dsl/DateTimeExpression.java index d496bd547..4782098a2 100644 --- a/querydsl-core/src/main/java/com/querydsl/core/types/dsl/DateTimeExpression.java +++ b/querydsl-core/src/main/java/com/querydsl/core/types/dsl/DateTimeExpression.java @@ -15,6 +15,7 @@ package com.querydsl.core.types.dsl; import java.util.Date; +import com.querydsl.core.types.ConstantImpl; import org.jetbrains.annotations.Nullable; import com.querydsl.core.types.Expression; @@ -275,4 +276,26 @@ public abstract class DateTimeExpression extends TemporalE return yearWeek; } + /** + * Create a {@code nullif(this, other)} expression + * + * @param other + * @return nullif(this, other) + */ + @Override + public DateTimeExpression nullif(Expression other) { + return Expressions.dateTimeOperation(getType(), Ops.NULLIF, mixin, other); + } + + /** + * Create a {@code nullif(this, other)} expression + * + * @param other + * @return nullif(this, other) + */ + @Override + public DateTimeExpression nullif(T other) { + return nullif(ConstantImpl.create(other)); + } + } diff --git a/querydsl-core/src/main/java/com/querydsl/core/types/dsl/EnumExpression.java b/querydsl-core/src/main/java/com/querydsl/core/types/dsl/EnumExpression.java index d17ca9eb0..fd45f66b1 100644 --- a/querydsl-core/src/main/java/com/querydsl/core/types/dsl/EnumExpression.java +++ b/querydsl-core/src/main/java/com/querydsl/core/types/dsl/EnumExpression.java @@ -13,6 +13,7 @@ */ package com.querydsl.core.types.dsl; +import com.querydsl.core.types.ConstantImpl; import com.querydsl.core.types.Expression; import com.querydsl.core.types.ExpressionUtils; import com.querydsl.core.types.Ops; @@ -57,4 +58,26 @@ public abstract class EnumExpression> extends LiteralExpressio return ordinal; } + /** + * Create a {@code nullif(this, other)} expression + * + * @param other + * @return nullif(this, other) + */ + @Override + public EnumExpression nullif(Expression other) { + return Expressions.enumOperation(getType(), Ops.NULLIF, mixin, other); + } + + /** + * Create a {@code nullif(this, other)} expression + * + * @param other + * @return nullif(this, other) + */ + @Override + public EnumExpression nullif(T other) { + return nullif(ConstantImpl.create(other)); + } + } \ No newline at end of file diff --git a/querydsl-core/src/main/java/com/querydsl/core/types/dsl/NumberExpression.java b/querydsl-core/src/main/java/com/querydsl/core/types/dsl/NumberExpression.java index 54853da07..32b4c8746 100644 --- a/querydsl-core/src/main/java/com/querydsl/core/types/dsl/NumberExpression.java +++ b/querydsl-core/src/main/java/com/querydsl/core/types/dsl/NumberExpression.java @@ -782,4 +782,26 @@ public abstract class NumberExpression> extends return list; } + /** + * Create a {@code nullif(this, other)} expression + * + * @param other + * @return nullif(this, other) + */ + @Override + public NumberExpression nullif(Expression other) { + return Expressions.numberOperation(getType(), Ops.NULLIF, mixin, other); + } + + /** + * Create a {@code nullif(this, other)} expression + * + * @param other + * @return nullif(this, other) + */ + @Override + public NumberExpression nullif(T other) { + return nullif(ConstantImpl.create(other)); + } + } diff --git a/querydsl-core/src/main/java/com/querydsl/core/types/dsl/StringExpression.java b/querydsl-core/src/main/java/com/querydsl/core/types/dsl/StringExpression.java index 85d225e67..548f140a4 100644 --- a/querydsl-core/src/main/java/com/querydsl/core/types/dsl/StringExpression.java +++ b/querydsl-core/src/main/java/com/querydsl/core/types/dsl/StringExpression.java @@ -849,7 +849,7 @@ public abstract class StringExpression extends LiteralExpression { */ @Override public StringExpression nullif(Expression other) { - return Expressions.stringOperation(Ops.NULLIF, this, other); + return Expressions.stringOperation(Ops.NULLIF, mixin, other); } /** diff --git a/querydsl-core/src/main/java/com/querydsl/core/types/dsl/TimeExpression.java b/querydsl-core/src/main/java/com/querydsl/core/types/dsl/TimeExpression.java index a538162f4..03b9b78c2 100644 --- a/querydsl-core/src/main/java/com/querydsl/core/types/dsl/TimeExpression.java +++ b/querydsl-core/src/main/java/com/querydsl/core/types/dsl/TimeExpression.java @@ -15,6 +15,7 @@ package com.querydsl.core.types.dsl; import java.sql.Time; +import com.querydsl.core.types.ConstantImpl; import org.jetbrains.annotations.Nullable; import com.querydsl.core.types.Expression; @@ -121,4 +122,26 @@ public abstract class TimeExpression extends TemporalExpre return Expressions.timeOperation(cl, Ops.DateTimeOps.CURRENT_TIME); } + /** + * Create a {@code nullif(this, other)} expression + * + * @param other + * @return nullif(this, other) + */ + @Override + public TimeExpression nullif(Expression other) { + return Expressions.timeOperation(getType(), Ops.NULLIF, mixin, other); + } + + /** + * Create a {@code nullif(this, other)} expression + * + * @param other + * @return nullif(this, other) + */ + @Override + public TimeExpression nullif(T other) { + return nullif(ConstantImpl.create(other)); + } + }