Hibernate 如何将packageScan和Persistence.xml一起用于EntityManagerFactory?
我正在尝试使用packageScan属性。如果我像下面这样使用,我会得到下面的错误。但是如果我在persistence.xml中取消对属性的注释,那么它就可以工作了 我不能同时使用persistence.xml和packageToScan属性吗Hibernate 如何将packageScan和Persistence.xml一起用于EntityManagerFactory?,hibernate,jpa,spring-data-jpa,Hibernate,Jpa,Spring Data Jpa,我正在尝试使用packageScan属性。如果我像下面这样使用,我会得到下面的错误。但是如果我在persistence.xml中取消对属性的注释,那么它就可以工作了 我不能同时使用persistence.xml和packageToScan属性吗 Not an managed type: class org.entities.Person Config.java @Bean public LocalContainerEntityManagerFactoryBean entityMana
Not an managed type: class org.entities.Person
Config.java
@Bean
public LocalContainerEntityManagerFactoryBean entityManagerFactory() {
LocalContainerEntityManagerFactoryBean em = new LocalContainerEntityManagerFactoryBean();
em.setPersistenceXmlLocation("persistence.xml");
em.setPersistenceUnitName("sample");
em.setPackagesToScan(new String[]{"org.entities"});
return em;
}
persistence.xml
<persistence>
<persistence-unit name="sample" transaction-type="RESOURCE_LOCAL">
<provider>org.hibernate.jpa.HibernatePersistenceProvider</provider>
<!--<class>org.entities.Person</class>-->
<properties>
<property name="hibernate.connection.username" value="user" />
<property name="hibernate.connection.driver_class" value="org.postgresql.Driver" />
<property name="hibernate.connection.password" value="user" />
<property name="hibernate.connection.url" value="jdbc:postgresql://localhost:5432/Hibernate" />
<property name="hibernate.dialect" value="org.hibernate.dialect.PostgreSQL9Dialect" />
<property name="hibernate.hbm2ddl.auto" value="create" />
<property name="hibernate.show_sql" value="true" />
<property name="hibernate.format_sql" value="true" />
</properties>
</persistence-unit>
</persistence>
org.hibernate.jpa.HibernatePersistenceProvider
简而言之:你没有。setPackagesToScan(…)
的JavaDoc声明(重点):
设置是否对类路径中的实体类使用基于Spring的扫描,而不是使用JPA标准的jar文件扫描,jar文件中有persistence.xml
标记
在没有标准JPApersistence.xml
的情况下,该机制基本上建立了一个默认的JPAPersistenceUnitInfo
,因此不能与之结合