diff --git a/src/main/java/com/avaje/ebean/ExpressionList.java b/src/main/java/com/avaje/ebean/ExpressionList.java index 6b3f16199..e619a4fe4 100644 --- a/src/main/java/com/avaje/ebean/ExpressionList.java +++ b/src/main/java/com/avaje/ebean/ExpressionList.java @@ -107,6 +107,16 @@ public interface ExpressionList extends Serializable { */ Query asOf(Timestamp asOf); + /** + * Execute the query against the draft set of tables. + */ + Query asDraft(); + + /** + * Execute the query including soft deleted rows. + */ + Query includeSoftDeletes(); + /** * Execute as a delete query deleting the 'root level' beans that match the predicates * in the query. diff --git a/src/main/java/com/avaje/ebeaninternal/server/expression/JunctionExpression.java b/src/main/java/com/avaje/ebeaninternal/server/expression/JunctionExpression.java index c0ba4f9f2..9b4e3bba2 100644 --- a/src/main/java/com/avaje/ebeaninternal/server/expression/JunctionExpression.java +++ b/src/main/java/com/avaje/ebeaninternal/server/expression/JunctionExpression.java @@ -234,6 +234,16 @@ abstract class JunctionExpression implements Junction, SpiExpression, Expr return exprList.asOf(asOf); } + @Override + public Query asDraft() { + return exprList.asDraft(); + } + + @Override + public Query includeSoftDeletes() { + return exprList.includeSoftDeletes(); + } + @Override public List> findVersions() { return exprList.findVersions(); diff --git a/src/main/java/com/avaje/ebeaninternal/util/DefaultExpressionList.java b/src/main/java/com/avaje/ebeaninternal/util/DefaultExpressionList.java index f7cb6043f..b2d84946d 100644 --- a/src/main/java/com/avaje/ebeaninternal/util/DefaultExpressionList.java +++ b/src/main/java/com/avaje/ebeaninternal/util/DefaultExpressionList.java @@ -121,6 +121,16 @@ public class DefaultExpressionList implements SpiExpressionList { return query.asOf(asOf); } + @Override + public Query asDraft() { + return query.asDraft(); + } + + @Override + public Query includeSoftDeletes() { + return query.includeSoftDeletes(); + } + @Override public List> findVersions() { return query.findVersions(); diff --git a/src/test/java/com/avaje/tests/softdelete/TestSoftDeleteBasic.java b/src/test/java/com/avaje/tests/softdelete/TestSoftDeleteBasic.java index fe9133196..83284c385 100644 --- a/src/test/java/com/avaje/tests/softdelete/TestSoftDeleteBasic.java +++ b/src/test/java/com/avaje/tests/softdelete/TestSoftDeleteBasic.java @@ -150,6 +150,7 @@ public class TestSoftDeleteBasic extends BaseTestCase { EBasicSoftDelete fetchAllWithLazy = Ebean.find(EBasicSoftDelete.class) .setId(bean.getId()) + .where() .includeSoftDeletes() .findUnique(); diff --git a/src/test/java/com/avaje/tests/softdelete/TestSoftDeleteTop.java b/src/test/java/com/avaje/tests/softdelete/TestSoftDeleteTop.java index ecbaa79a6..2f7af21ab 100644 --- a/src/test/java/com/avaje/tests/softdelete/TestSoftDeleteTop.java +++ b/src/test/java/com/avaje/tests/softdelete/TestSoftDeleteTop.java @@ -5,18 +5,13 @@ import com.avaje.ebean.Ebean; import com.avaje.ebean.Transaction; import com.avaje.ebean.config.PersistBatch; import com.avaje.tests.model.softdelete.ESoftDelMid; -import com.avaje.tests.model.softdelete.ESoftDelRole; import com.avaje.tests.model.softdelete.ESoftDelTop; import com.avaje.tests.model.softdelete.ESoftDelUp; -import com.avaje.tests.model.softdelete.ESoftDelUser; -import org.avaje.ebeantest.LoggedSqlCollector; import org.junit.Test; import java.util.ArrayList; import java.util.List; -import static org.assertj.core.api.Assertions.assertThat; - public class TestSoftDeleteTop extends BaseTestCase { @Test