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