0

我正在使用 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"

我很感激任何想法

此致

4

1 回答 1

1

您可以在LocalContainerEntityManagerFactoryBean定义中使用属性packagesToScan(在 Spring 3.1 中可用)。如果您使用这种方法,则不再需要定义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>
于 2013-09-05T12:16:30.793 回答