Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/jpa/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Hibernate 如何将packageScan和Persistence.xml一起用于EntityManagerFactory?_Hibernate_Jpa_Spring Data Jpa - Fatal编程技术网

Hibernate 如何将packageScan和Persistence.xml一起用于EntityManagerFactory?

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

我正在尝试使用packageScan属性。如果我像下面这样使用,我会得到下面的错误。但是如果我在persistence.xml中取消对属性的注释,那么它就可以工作了

我不能同时使用persistence.xml和packageToScan属性吗

 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
标记

在没有标准JPA
persistence.xml
的情况下,该机制基本上建立了一个默认的JPA
PersistenceUnitInfo
,因此不能与之结合