diff --git a/ebean-api/src/main/java/io/ebean/ExpressionList.java b/ebean-api/src/main/java/io/ebean/ExpressionList.java index f02ccd44e..8e53e856d 100644 --- a/ebean-api/src/main/java/io/ebean/ExpressionList.java +++ b/ebean-api/src/main/java/io/ebean/ExpressionList.java @@ -1730,4 +1730,8 @@ public interface ExpressionList { */ ExpressionList endNot(); + /** + * Clears the current expression list. + */ + ExpressionList clear(); } diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/expression/DefaultExpressionList.java b/ebean-core/src/main/java/io/ebeaninternal/server/expression/DefaultExpressionList.java index 3759ce9b0..d47988865 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/expression/DefaultExpressionList.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/expression/DefaultExpressionList.java @@ -1268,4 +1268,10 @@ public class DefaultExpressionList implements SpiExpressionList { } return null; } + + @Override + public ExpressionList clear() { + list.clear(); + return this; + } } diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/expression/JunctionExpression.java b/ebean-core/src/main/java/io/ebeaninternal/server/expression/JunctionExpression.java index 3e202e99e..2f8dea86f 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/expression/JunctionExpression.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/expression/JunctionExpression.java @@ -1068,4 +1068,9 @@ final class JunctionExpression implements SpiJunction, SpiExpression, Expr } return null; } + + @Override + public ExpressionList clear() { + return exprList.clear(); + } } diff --git a/ebean-core/src/test/java/io/ebeaninternal/server/expression/DefaultExpressionListTest.java b/ebean-core/src/test/java/io/ebeaninternal/server/expression/DefaultExpressionListTest.java index b89590936..69f9c8e43 100644 --- a/ebean-core/src/test/java/io/ebeaninternal/server/expression/DefaultExpressionListTest.java +++ b/ebean-core/src/test/java/io/ebeaninternal/server/expression/DefaultExpressionListTest.java @@ -99,6 +99,14 @@ public class DefaultExpressionListTest extends BaseExpressionTest { .isSameByBind(spi(exp().eq("a", 10).eq("b", 20)))).isFalse(); } + @Test + public void isSameWithClear() { + DefaultExpressionList exp1 = spi(exp().eq("a", 10).eq("b", 20).clear().eq("c", 30)); + DefaultExpressionList exp2 = spi(exp().eq("c", 30)); + same(exp1, exp2); + assertThat(exp1.isSameByBind(exp2)).isTrue(); + } + @SuppressWarnings("unchecked") @Test void copy() {