Author: cmoulliard
Date: Wed Dec  9 15:28:29 2009
New Revision: 888834

URL: http://svn.apache.org/viewvc?rev=888834&view=rev
Log:
CAMEL-2273 - do not use fully qualified class name in JPA query but simple name 
or entity name

Modified:
    
camel/trunk/components/camel-jpa/src/main/java/org/apache/camel/component/jpa/JpaConsumer.java

Modified: 
camel/trunk/components/camel-jpa/src/main/java/org/apache/camel/component/jpa/JpaConsumer.java
URL: 
http://svn.apache.org/viewvc/camel/trunk/components/camel-jpa/src/main/java/org/apache/camel/component/jpa/JpaConsumer.java?rev=888834&r1=888833&r2=888834&view=diff
==============================================================================
--- 
camel/trunk/components/camel-jpa/src/main/java/org/apache/camel/component/jpa/JpaConsumer.java
 (original)
+++ 
camel/trunk/components/camel-jpa/src/main/java/org/apache/camel/component/jpa/JpaConsumer.java
 Wed Dec  9 15:28:29 2009
@@ -21,6 +21,7 @@
 import java.util.List;
 import java.util.Queue;
 
+import javax.persistence.Entity;
 import javax.persistence.EntityManager;
 import javax.persistence.LockModeType;
 import javax.persistence.PersistenceException;
@@ -36,6 +37,7 @@
 import org.apache.commons.logging.LogFactory;
 
 import org.springframework.orm.jpa.JpaCallback;
+import org.springframework.util.ClassUtils;
 
 /**
  * @version $Revision$
@@ -234,13 +236,39 @@
             return QueryBuilder.nativeQuery(nativeQuery);
         } else {
             Class<?> entityType = endpoint.getEntityType();
+            
             if (entityType == null) {
                 return null;
             } else {
-                return QueryBuilder.query("select x from " + 
entityType.getName() + " x");
+                
+                // Check if we have a property name on the @Entity annotation
+                String name = getEntityName(entityType);
+                
+                if ( name != null ) {
+                    return QueryBuilder.query("select x from " + name + " x");
+                } else {
+                    // Remove package name of the entity to be conform with 
JPA 1.0 spec
+                    return QueryBuilder.query("select x from " + 
entityType.getSimpleName() + " x");
+                }
+                    
+
+                
             }
         }
     }
+    
+    protected String getEntityName(Class<?> clazz) {
+        
+        Entity entity = clazz.getAnnotation(Entity.class);
+        
+        // Check if the property name has been defined for Entity annotation
+        if ( ! entity.name().equals("") ) {
+            return entity.name();
+        } else {
+            return null;
+        }
+ 
+    }
 
     protected DeleteHandler<Object> createDeleteHandler() {
         // look for @Consumed to allow custom callback when the Entity has 
been consumed


Reply via email to