From 3ed6c822bbb99e710c0e01af4121f36ccd7e4ec8 Mon Sep 17 00:00:00 2001 From: Jan-Willem Gmelig Meyling Date: Mon, 25 Jan 2021 23:05:25 +0100 Subject: [PATCH] Type nullif in ComparableExpression and StringExpression --- .../types/dsl/ComparableExpressionBase.java | 23 +++++++++++++++++++ .../core/types/dsl/StringExpression.java | 23 +++++++++++++++++++ 2 files changed, 46 insertions(+) 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 5a6a994f9..d5616a165 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 @@ -13,6 +13,7 @@ */ package com.querydsl.core.types.dsl; +import com.querydsl.core.types.ConstantImpl; import com.querydsl.core.types.Ops; import org.jetbrains.annotations.Nullable; @@ -80,6 +81,28 @@ public abstract class ComparableExpressionBase extends Sim return coalesce; } + /** + * 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, this, 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)); + } + /** * Create an OrderSpecifier for descending order of this expression * 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 e264924d6..85d225e67 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 @@ -840,4 +840,27 @@ public abstract class StringExpression extends LiteralExpression { return upper; } + + /** + * Create a {@code nullif(this, other)} expression + * + * @param other + * @return nullif(this, other) + */ + @Override + public StringExpression nullif(Expression other) { + return Expressions.stringOperation(Ops.NULLIF, this, other); + } + + /** + * Create a {@code nullif(this, other)} expression + * + * @param other + * @return nullif(this, other) + */ + @Override + public StringExpression nullif(String other) { + return nullif(ConstantImpl.create(other)); + } + }