Commit b4872a11383fc929eb6a0caabfab769fce004284

Authored by Cleverson Sacramento
2 parents b068c09f ca7d543a
Exists in master

Merge branch 'master' of git@github.com:demoiselle/framework.git

impl/extension/jpa/src/main/java/br/gov/frameworkdemoiselle/template/JPACrud.java
@@ -47,6 +47,7 @@ import javax.enterprise.inject.Instance; @@ -47,6 +47,7 @@ import javax.enterprise.inject.Instance;
47 import javax.inject.Inject; 47 import javax.inject.Inject;
48 import javax.persistence.Basic; 48 import javax.persistence.Basic;
49 import javax.persistence.Column; 49 import javax.persistence.Column;
  50 +import javax.persistence.Entity;
50 import javax.persistence.EntityExistsException; 51 import javax.persistence.EntityExistsException;
51 import javax.persistence.EntityManager; 52 import javax.persistence.EntityManager;
52 import javax.persistence.Enumerated; 53 import javax.persistence.Enumerated;
@@ -195,7 +196,17 @@ public class JPACrud<T, I> implements Crud<T, I> { @@ -195,7 +196,17 @@ public class JPACrud<T, I> implements Crud<T, I> {
195 196
196 @Override 197 @Override
197 public List<T> findAll() { 198 public List<T> findAll() {
198 - return findByJPQL("select this from " + getBeanClass().getSimpleName() + " this"); 199 + Entity entityAnnotation = getBeanClass().getAnnotation(Entity.class);
  200 + String entityName = null;
  201 + if (entityAnnotation!=null
  202 + && entityAnnotation.name()!=null
  203 + && !entityAnnotation.name().trim().equals("")) {
  204 + entityName = entityAnnotation.name();
  205 + }
  206 + else {
  207 + entityName = getBeanClass().getSimpleName();
  208 + }
  209 + return findByJPQL("select this from " + entityName + " this");
199 } 210 }
200 211
201 /** 212 /**
impl/extension/jpa/src/test/java/template/JPACrudTest.java
@@ -24,6 +24,9 @@ public class JPACrudTest { @@ -24,6 +24,9 @@ public class JPACrudTest {
24 24
25 @Inject 25 @Inject
26 private MyCrud crud; 26 private MyCrud crud;
  27 +
  28 + @Inject
  29 + private MyNamedCrud namedCrud;
27 30
28 @Deployment(name = "1") 31 @Deployment(name = "1")
29 public static WebArchive createDeployment() { 32 public static WebArchive createDeployment() {
@@ -80,6 +83,17 @@ public class JPACrudTest { @@ -80,6 +83,17 @@ public class JPACrudTest {
80 83
81 assertEquals(list.size(), 4); 84 assertEquals(list.size(), 4);
82 } 85 }
  86 +
  87 + @Test
  88 + public void findAllNamedEntity() {
  89 + populateNamedEntity(4, 0);
  90 +
  91 + List<MyNamedEntity> list;
  92 + list = namedCrud.findAll();
  93 +
  94 + assertEquals(list.size(), 4);
  95 + }
  96 +
83 97
84 private void populate(int size, int offset) { 98 private void populate(int size, int offset) {
85 MyEntity entity; 99 MyEntity entity;
@@ -93,6 +107,18 @@ public class JPACrudTest { @@ -93,6 +107,18 @@ public class JPACrudTest {
93 } 107 }
94 } 108 }
95 109
  110 + private void populateNamedEntity(int size, int offset) {
  111 + MyNamedEntity entity;
  112 +
  113 + for (int i = 0; i < size; i++) {
  114 + entity = new MyNamedEntity();
  115 + entity.setId(createId("id-" + (i + 1 + offset)));
  116 + entity.setDescription("desc-" + (i + 1 + offset));
  117 +
  118 + namedCrud.insert(entity);
  119 + }
  120 + }
  121 +
96 private String createId(String id) { 122 private String createId(String id) {
97 return this.getClass().getName() + "_" + id; 123 return this.getClass().getName() + "_" + id;
98 } 124 }
impl/extension/jpa/src/test/java/template/MyNamedCrud.java 0 → 100644
@@ -0,0 +1,9 @@ @@ -0,0 +1,9 @@
  1 +package template;
  2 +
  3 +import br.gov.frameworkdemoiselle.template.JPACrud;
  4 +
  5 +public class MyNamedCrud extends JPACrud<MyNamedEntity, String> {
  6 +
  7 + private static final long serialVersionUID = 1L;
  8 +
  9 +}
0 \ No newline at end of file 10 \ No newline at end of file
impl/extension/jpa/src/test/java/template/MyNamedEntity.java 0 → 100644
@@ -0,0 +1,29 @@ @@ -0,0 +1,29 @@
  1 +package template;
  2 +
  3 +import javax.persistence.Entity;
  4 +import javax.persistence.Id;
  5 +
  6 +@Entity(name = "namedEntity")
  7 +public class MyNamedEntity {
  8 +
  9 + @Id
  10 + private String id;
  11 +
  12 + private String description;
  13 +
  14 + public String getId() {
  15 + return id;
  16 + }
  17 +
  18 + public void setId(String id) {
  19 + this.id = id;
  20 + }
  21 +
  22 + public String getDescription() {
  23 + return description;
  24 + }
  25 +
  26 + public void setDescription(String description) {
  27 + this.description = description;
  28 + }
  29 +}
impl/extension/jpa/src/test/resources/template/persistence.xml
@@ -41,6 +41,7 @@ @@ -41,6 +41,7 @@
41 <non-jta-data-source>jdbc/__default</non-jta-data-source> 41 <non-jta-data-source>jdbc/__default</non-jta-data-source>
42 42
43 <class>template.MyEntity</class> 43 <class>template.MyEntity</class>
  44 + <class>template.MyNamedEntity</class>
44 45
45 <properties> 46 <properties>
46 <property name="eclipselink.ddl-generation" value="drop-and-create-tables" /> 47 <property name="eclipselink.ddl-generation" value="drop-and-create-tables" />