You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by cm...@apache.org on 2009/12/09 16:28:29 UTC
svn commit: r888834 -
/camel/trunk/components/camel-jpa/src/main/java/org/apache/camel/component/jpa/JpaConsumer.java
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