我正在使用jpa和spring,并在下面的代码中出错;
@PersistenceContext protected EntityManager entityManager;
entityManager.createQuery("select c from Theatre c");
并接受此错误。
java.lang.IllegalArgumentException: org.hibernate.hql.internal.ast.QuerySyntaxException: Theatre is
not mapped [select c from Theatre c]
为了解决我在下面使用的问题,但我需要任何其他解决方案,因为项目不应该知道类,我想进行动态编程
<class>Theatre </class> in "PersistenceUnit"
我很欣赏任何想法
最好的问候
答案 0 :(得分:1)
您可以在 LocalContainerEntityManagerFactoryBean 定义(在Spring 3.1中提供)中使用 packagesToScan 属性。如果使用此方法,则无需再定义 persistence.xml 。配置应该是这样的:
<bean id="entityManagerFactory" class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean">
<property name="dataSource" ref="dataSource" />
<property name="packagesToScan" value="com.sergialmar.domain" />
<property name="jpaVendorAdapter">
<bean class="org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter" />
</property>
<property name="jpaProperties">
<props>
<prop key="hibernate.hbm2ddl.auto">create-drop</prop>
<prop key="hibernate.dialect">org.hibernate.dialect.MySQL5Dialect</prop>
</props>
</property>
</bean>