Mysql 在entitymanager上查询时需要避免使用“inPersistenceUnit”

Mysql 在entitymanager上查询时需要避免使用“inPersistenceUnit”,mysql,spring,jpa,entitymanager,Mysql,Spring,Jpa,Entitymanager,我使用的是jpa和spring,下面的代码有一个错误 @PersistenceContext protected EntityManager entityManager; entityManager.createQuery("select c from Theatre c"); 然后接受这个错误 java.lang.IllegalArgumentException: org.hibernate.hql.internal.ast.QuerySyntaxException: Theat

我使用的是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"
我很感激你的建议

致以最诚挚的问候

您可以在Spring 3.1中提供的LocalContainerEntityManagerFactoryBean定义中使用属性PackageScon。如果使用这种方法,就不需要再定义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>

我不确定我是否理解您的问题,但是您的项目中没有剧院类,或者您不知道这个类,但是您有查询从剧院c中选择c?为什么不希望查询知道该类?你想达到什么目的?我不清楚。