我的问题:
有没有办法告诉 Spring/JPA 自动检测带有 @Entity 注释的类?
背景:
这是我对 entityManagerFactory 的配置
<bean id="entityManagerFactory" class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean">
<property name="jpaVendorAdapter">
<bean class="org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter" />
</property>
</bean>
...这是我的persistence.xml ...
<persistence-unit name="foo">
<provider>org.hibernate.ejb.HibernatePersistence</provider>
<properties>
<property name="hibernate..." value="..."/>
<property ...
</properties>
</persistence-unit>
此配置正在运行。但是:当我将以下行添加到我的 entityManagerFactory 配置时
<property name="persistenceXmlLocation" value="META-INF/persistence.xml" />
JPA 没有发现我的类用@Entity 注释。所以,我得到这样的例外:
java.lang.IllegalArgumentException: Unknown entity: foo.Bar
其中 foo.Bar 是一个用 @javax.persistence.Entity 注释的类
当我现在添加
<class>foo.Bar</class>
到我的persistence.xml,一切又好了。但是,为什么我必须在使用 persistenceXmlLocation 时在 persistence.xml 中指定我的类,否则不需要?
注意:你可能会问我为什么要使用 persistenceXmlLocation:它会解决这个问题。