You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@deltaspike.apache.org by hw...@apache.org on 2015/12/30 13:44:12 UTC

deltaspike git commit: DELTASPIKE-1045 added CriteriaSupport to (Abstract)FullEntityRepository

Repository: deltaspike
Updated Branches:
  refs/heads/master 5555507fe -> cf3fa2483


DELTASPIKE-1045 added CriteriaSupport to (Abstract)FullEntityRepository

Project: http://git-wip-us.apache.org/repos/asf/deltaspike/repo
Commit: http://git-wip-us.apache.org/repos/asf/deltaspike/commit/cf3fa248
Tree: http://git-wip-us.apache.org/repos/asf/deltaspike/tree/cf3fa248
Diff: http://git-wip-us.apache.org/repos/asf/deltaspike/diff/cf3fa248

Branch: refs/heads/master
Commit: cf3fa2483e8556ce47d74906be9c8503a9b692c1
Parents: 5555507
Author: Harald Wellmann <hw...@apache.org>
Authored: Wed Dec 30 13:44:07 2015 +0100
Committer: Harald Wellmann <hw...@apache.org>
Committed: Wed Dec 30 13:44:07 2015 +0100

----------------------------------------------------------------------
 .../data/api/AbstractFullEntityRepository.java  | 20 +++++++++++---------
 .../data/api/FullEntityRepository.java          |  8 +++++---
 .../impl/handler/FullEntityRepositoryTest.java  | 14 ++++++++++++++
 .../test/service/FullRepositoryAbstract.java    |  6 ++++++
 documentation/src/main/asciidoc/data.adoc       |  5 +++--
 5 files changed, 39 insertions(+), 14 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/deltaspike/blob/cf3fa248/deltaspike/modules/data/api/src/main/java/org/apache/deltaspike/data/api/AbstractFullEntityRepository.java
----------------------------------------------------------------------
diff --git a/deltaspike/modules/data/api/src/main/java/org/apache/deltaspike/data/api/AbstractFullEntityRepository.java b/deltaspike/modules/data/api/src/main/java/org/apache/deltaspike/data/api/AbstractFullEntityRepository.java
index f3d23b2..64b5e5d 100644
--- a/deltaspike/modules/data/api/src/main/java/org/apache/deltaspike/data/api/AbstractFullEntityRepository.java
+++ b/deltaspike/modules/data/api/src/main/java/org/apache/deltaspike/data/api/AbstractFullEntityRepository.java
@@ -20,17 +20,19 @@ package org.apache.deltaspike.data.api;
 
 import java.io.Serializable;
 
+import org.apache.deltaspike.data.api.criteria.CriteriaSupport;
 
 /**
- * Full Repository base class to be extended by concrete implementations.
- * Unlike {@link AbstractEntityRepository}, this class exposes all methods
- * of the underlying EntityManager.
- *
- * @param <E>   Entity type.
- * @param <PK>  Primary key type.
+ * Full repository base class to be extended by concrete implementations. A convenience class
+ * combining {@code AbstractEntityRepository}, {@code EntityManagerDelegate} and
+ * {@code CriteriaSupport}.
+ * 
+ * @param <E>
+ *            Entity type.
+ * @param <PK>
+ *            Primary key type.
  */
-public abstract class AbstractFullEntityRepository<E, PK extends Serializable>
-    extends AbstractEntityRepository<E, PK>
-    implements EntityManagerDelegate<E>
+public abstract class AbstractFullEntityRepository<E, PK extends Serializable> extends
+    AbstractEntityRepository<E, PK> implements EntityManagerDelegate<E>, CriteriaSupport<E>
 {
 }

http://git-wip-us.apache.org/repos/asf/deltaspike/blob/cf3fa248/deltaspike/modules/data/api/src/main/java/org/apache/deltaspike/data/api/FullEntityRepository.java
----------------------------------------------------------------------
diff --git a/deltaspike/modules/data/api/src/main/java/org/apache/deltaspike/data/api/FullEntityRepository.java b/deltaspike/modules/data/api/src/main/java/org/apache/deltaspike/data/api/FullEntityRepository.java
index 11910ad..c6fc7c3 100644
--- a/deltaspike/modules/data/api/src/main/java/org/apache/deltaspike/data/api/FullEntityRepository.java
+++ b/deltaspike/modules/data/api/src/main/java/org/apache/deltaspike/data/api/FullEntityRepository.java
@@ -20,14 +20,16 @@ package org.apache.deltaspike.data.api;
 
 import java.io.Serializable;
 
+import org.apache.deltaspike.data.api.criteria.CriteriaSupport;
+
 /**
- * Full repository interface, including all methods not exposed by the base repository
- * interface.
+ * Full repository interface. A convenience class combining {@code EntityRepository},
+ * {@code EntityManagerDelegate} and {@code CriteriaSupport}.
  * 
  * @param <E>   Entity type.
  * @param <PK>  Primary key type.
  */
 public interface FullEntityRepository<E, PK extends Serializable> 
-    extends EntityRepository<E, PK>, EntityManagerDelegate<E>
+    extends EntityRepository<E, PK>, EntityManagerDelegate<E>, CriteriaSupport<E>
 {
 }

http://git-wip-us.apache.org/repos/asf/deltaspike/blob/cf3fa248/deltaspike/modules/data/impl/src/test/java/org/apache/deltaspike/data/impl/handler/FullEntityRepositoryTest.java
----------------------------------------------------------------------
diff --git a/deltaspike/modules/data/impl/src/test/java/org/apache/deltaspike/data/impl/handler/FullEntityRepositoryTest.java b/deltaspike/modules/data/impl/src/test/java/org/apache/deltaspike/data/impl/handler/FullEntityRepositoryTest.java
index 6d20c7e..277ff49 100644
--- a/deltaspike/modules/data/impl/src/test/java/org/apache/deltaspike/data/impl/handler/FullEntityRepositoryTest.java
+++ b/deltaspike/modules/data/impl/src/test/java/org/apache/deltaspike/data/impl/handler/FullEntityRepositoryTest.java
@@ -197,6 +197,20 @@ public class FullEntityRepositoryTest extends TransactionalTestCase
         assertEquals(simple.getId(), fetch.getId());
     }
 
+    @Test
+    public void should_find_by_criteria() throws Exception
+    {
+        // given
+        Simple simple = new Simple("criteria");
+        
+        // when
+        simple = repoAbstract.saveAndFlush(simple);
+        Simple fetch = repoAbstract.fetchByName("criteria");
+
+        // then
+        assertEquals(simple.getId(), fetch.getId());
+    }
+
     @Override
     protected EntityManager getEntityManager()
     {

http://git-wip-us.apache.org/repos/asf/deltaspike/blob/cf3fa248/deltaspike/modules/data/impl/src/test/java/org/apache/deltaspike/data/test/service/FullRepositoryAbstract.java
----------------------------------------------------------------------
diff --git a/deltaspike/modules/data/impl/src/test/java/org/apache/deltaspike/data/test/service/FullRepositoryAbstract.java b/deltaspike/modules/data/impl/src/test/java/org/apache/deltaspike/data/test/service/FullRepositoryAbstract.java
index b5f31af..e5ebb1e 100644
--- a/deltaspike/modules/data/impl/src/test/java/org/apache/deltaspike/data/test/service/FullRepositoryAbstract.java
+++ b/deltaspike/modules/data/impl/src/test/java/org/apache/deltaspike/data/test/service/FullRepositoryAbstract.java
@@ -21,6 +21,7 @@ package org.apache.deltaspike.data.test.service;
 import org.apache.deltaspike.data.api.AbstractFullEntityRepository;
 import org.apache.deltaspike.data.api.Repository;
 import org.apache.deltaspike.data.test.domain.Simple;
+import org.apache.deltaspike.data.test.domain.Simple_;
 
 @Repository
 public abstract class FullRepositoryAbstract
@@ -35,4 +36,9 @@ public abstract class FullRepositoryAbstract
     {
         return entityName();
     }
+
+    public Simple fetchByName(String name)
+    {
+        return criteria().eq(Simple_.name, name).getOptionalResult();
+    }
 }

http://git-wip-us.apache.org/repos/asf/deltaspike/blob/cf3fa248/documentation/src/main/asciidoc/data.adoc
----------------------------------------------------------------------
diff --git a/documentation/src/main/asciidoc/data.adoc b/documentation/src/main/asciidoc/data.adoc
index f14d34a..1c14bbb 100644
--- a/documentation/src/main/asciidoc/data.adoc
+++ b/documentation/src/main/asciidoc/data.adoc
@@ -314,7 +314,8 @@ public interface PersonRepository extends EntityRepository<Person, Long>, Entity
 }
 -------------------------------------------------------------------------------------------------------
 
-This is equivalent to extending the `FullEntityRepository` interface:
+Alternatively, you can extend the `FullEntityRepository` interface which is a short-hand for extending
+all of `EntityRepository`, `EntityManagerDelegate` and `CriteriaSupport`.
 
 [source,java]
 -------------------------------------------------------------------------------------------------------
@@ -326,7 +327,7 @@ public interface PersonRepository extends FullEntityRepository<Person, Long>
 -------------------------------------------------------------------------------------------------------
 
 For abstract classes, there is a convenience base class `AbstractFullEntityRepository` which also
-implements `EntityManagerDelegate` and thus exposes most `EntityManager` methods:
+implements `EntityManagerDelegate` and `CriteriaSupport` and thus exposes most `EntityManager` methods:
 
 [source,java]
 -------------------------------------------------------------------------------------------------------