Repository: deltaspike Updated Branches: refs/heads/master 7e19fcb51 -> 6522fcb9e (forced update)
DELTASPIKE-1100 Support remove expressions Project: http://git-wip-us.apache.org/repos/asf/deltaspike/repo Commit: http://git-wip-us.apache.org/repos/asf/deltaspike/commit/6522fcb9 Tree: http://git-wip-us.apache.org/repos/asf/deltaspike/tree/6522fcb9 Diff: http://git-wip-us.apache.org/repos/asf/deltaspike/diff/6522fcb9 Branch: refs/heads/master Commit: 6522fcb9e3cda9301b44430843ff2d9aa89473c2 Parents: 2b63081 Author: Daniel Cunha <[email protected]> Authored: Fri Mar 25 18:45:38 2016 -0700 Committer: Daniel Cunha <[email protected]> Committed: Sat Mar 26 10:58:32 2016 -0300 ---------------------------------------------------------------------- .../deltaspike/data/impl/meta/MethodPrefix.java | 12 +++++++- .../data/impl/handler/QueryHandlerTest.java | 32 ++++++++++++++++++++ .../data/test/service/SimpleRepository.java | 4 +++ documentation/src/main/asciidoc/data.adoc | 3 ++ 4 files changed, 50 insertions(+), 1 deletion(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/deltaspike/blob/6522fcb9/deltaspike/modules/data/impl/src/main/java/org/apache/deltaspike/data/impl/meta/MethodPrefix.java ---------------------------------------------------------------------- diff --git a/deltaspike/modules/data/impl/src/main/java/org/apache/deltaspike/data/impl/meta/MethodPrefix.java b/deltaspike/modules/data/impl/src/main/java/org/apache/deltaspike/data/impl/meta/MethodPrefix.java index 4bfb914..e421087 100644 --- a/deltaspike/modules/data/impl/src/main/java/org/apache/deltaspike/data/impl/meta/MethodPrefix.java +++ b/deltaspike/modules/data/impl/src/main/java/org/apache/deltaspike/data/impl/meta/MethodPrefix.java @@ -26,6 +26,7 @@ public class MethodPrefix public static final String DEFAULT_OPT_PREFIX = "findOptionalBy"; public static final String DEFAULT_ANY_PREFIX = "findAnyBy"; public static final String DEFAULT_DELETE_PREFIX = "deleteBy"; + public static final String DEFAULT_REMOVE_PREFIX = "removeBy"; private final String customPrefix; private final String methodName; @@ -86,7 +87,8 @@ public class MethodPrefix public boolean isDelete() { - return this.getPrefix().equalsIgnoreCase(DEFAULT_DELETE_PREFIX); + return this.getPrefix().equalsIgnoreCase(DEFAULT_DELETE_PREFIX) || + this.getPrefix().equalsIgnoreCase(DEFAULT_REMOVE_PREFIX); } private static enum KnownQueryPrefix @@ -122,6 +124,14 @@ public class MethodPrefix { return SingleResultType.ANY; } + }, + REMOVE_DEFAULT(DEFAULT_REMOVE_PREFIX) + { + @Override + public SingleResultType getStyle() + { + return SingleResultType.ANY; + } }; private final String prefix; http://git-wip-us.apache.org/repos/asf/deltaspike/blob/6522fcb9/deltaspike/modules/data/impl/src/test/java/org/apache/deltaspike/data/impl/handler/QueryHandlerTest.java ---------------------------------------------------------------------- diff --git a/deltaspike/modules/data/impl/src/test/java/org/apache/deltaspike/data/impl/handler/QueryHandlerTest.java b/deltaspike/modules/data/impl/src/test/java/org/apache/deltaspike/data/impl/handler/QueryHandlerTest.java index 934f892..89b9397 100644 --- a/deltaspike/modules/data/impl/src/test/java/org/apache/deltaspike/data/impl/handler/QueryHandlerTest.java +++ b/deltaspike/modules/data/impl/src/test/java/org/apache/deltaspike/data/impl/handler/QueryHandlerTest.java @@ -160,6 +160,38 @@ public class QueryHandlerTest extends TransactionalTestCase } @Test + public void should_create_query_remove_by_method_name() + { + // given + final String name = "testCreateQueryByMethodName"; + builder.createSimple(name); + + // when + repo.removeByName(name); + repo.flush(); + Simple result = repo.findAnyByName(name); + + // then + assertNull(result); + } + + @Test + public void should_create_query_remove_by_method_name_with_multiply_params() + { + // given + final String name = "testCreateQueryByMethodName"; + builder.createSimple(name); + + // when + repo.removeByNameAndEnabled(name, Boolean.TRUE); + repo.flush(); + Simple result = repo.findAnyByName(name); + + // then + assertNull(result); + } + + @Test public void should_create_query_delete_by_method_name_with_multiply_params() { // given http://git-wip-us.apache.org/repos/asf/deltaspike/blob/6522fcb9/deltaspike/modules/data/impl/src/test/java/org/apache/deltaspike/data/test/service/SimpleRepository.java ---------------------------------------------------------------------- diff --git a/deltaspike/modules/data/impl/src/test/java/org/apache/deltaspike/data/test/service/SimpleRepository.java b/deltaspike/modules/data/impl/src/test/java/org/apache/deltaspike/data/test/service/SimpleRepository.java index 2b1a8d5..ebadd20 100755 --- a/deltaspike/modules/data/impl/src/test/java/org/apache/deltaspike/data/test/service/SimpleRepository.java +++ b/deltaspike/modules/data/impl/src/test/java/org/apache/deltaspike/data/test/service/SimpleRepository.java @@ -107,8 +107,12 @@ public abstract class SimpleRepository extends AbstractEntityRepository<Simple, public abstract void deleteByName(String name); + public abstract void removeByName(String name); + public abstract void deleteByNameAndEnabled(String name, boolean enable); + public abstract void removeByNameAndEnabled(String name, Boolean aTrue); + @Override protected abstract EntityManager entityManager(); } http://git-wip-us.apache.org/repos/asf/deltaspike/blob/6522fcb9/documentation/src/main/asciidoc/data.adoc ---------------------------------------------------------------------- diff --git a/documentation/src/main/asciidoc/data.adoc b/documentation/src/main/asciidoc/data.adoc index 1c14bbb..e716fd1 100644 --- a/documentation/src/main/asciidoc/data.adoc +++ b/documentation/src/main/asciidoc/data.adoc @@ -390,6 +390,9 @@ Or in more concrete words: * Followed by a property of the Repository entity and an optional comparator (we'll define this later). The property will be used in the query together with the comparator. Note that the number of arguments passed to the method depend on the comparator. * You can add more blocks of property-comparator which have to be concatenated by a boolean operator. This is either an `And` or `Or`. +You can use the same way for delete an entity: +* It must start with the `removeBy` keyword (or related `deleteBy`). + Other assumptions taken by the expression evaluator: * The property name starts lower cased while the property in the expression has an upper cases first character.
