错误:没有EntityManager的持久性提供程序

时间:2018-03-12 11:04:05

标签: java hibernate jpa persistence

我试图开始理解Hibernate。但我有一个问题。 通过我的研究,我找到了许多东西,但没有解决我的问题。 " org.hibernate.ejb.HibernatePersistence是用红色写的。

我的persistence.xml

    <?xml version="1.0" encoding="UTF-8"?>
<persistence xmlns="http://java.sun.com/xml/ns/persistence"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://java.sun.com/xml/ns/persistence
    http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd"
    version="2.0">

    <persistence-unit name="demojpa">
        <provider>org.hibernate.ejb.HibernatePersistence</provider>
        <properties>
            <property name="hibernate.archive.autodetection" value="class"/>
            <property name="hibernate.format_sql" value="true"/>

            <!-- Configuration de la BDD -->
            <property name="javax.persistence.jdbc.driver" value="com.mysql.jdbc.Driver" />
            <property name="javax.persistence.jdbc.url" value="jdbc:mysql://localhost/demojpa" />
            <property name="javax.persistence.jdbc.user" value="root" />
            <property name="javax.persistence.jdbc.password" value="" />

            <!-- Specifie le dialecte SQL utilisé pour communiquer avec la BDD -->
            <property name="hibernate.dialect" value="org.hibernate.dialect.MYSQLDialect"/>

            <!-- Indique a Hibernate de re-creer la BDD au lancement de l'applciation -->
            <property name="hbm2ddl.auto" value="create"/>

        </properties>
    </persistence-unit>
</persistence>

我的班级

public class DemoJpa {

    public static void main(String[] args) {
        // 1 Ouverture unité de travail JPA
        EntityManagerFactory emf = Persistence.createEntityManagerFactory("demojpa");
        EntityManager em = emf.createEntityManager();
}

完成我的根... 因为我认为这个问题存在问题....

My root

感谢大家的帮助!

1 个答案:

答案 0 :(得分:1)

persistence.xml替换 deprecated 声明(在Hibernate版本5 +中删除)

<provider>org.hibernate.ejb.HibernatePersistence</provider>

<provider>org.hibernate.jpa.HibernatePersistenceProvider</provider>

基本上,这应该是&#34;红色&#34;消失。

请注意,版本4.3.x中的Hibernate supports JPA 2.1(参见表支持的JPA版本)。重要提示:您还应该在persistence.xml的头部声明以下内容:

<?xml version="1.0" encoding="UTF-8"?>
<persistence xmlns="http://xmlns.jcp.org/xml/ns/persistence"
             xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
             xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/persistence
             http://xmlns.jcp.org/xml/ns/persistence/persistence_2_1.xsd"
             version="2.1">

这将为您提供完整的JPA 2.1支持,并告诉ORM使用2.1版。

正如您刚刚开始使用的那样,最好从版本5.2或更高版本开始使用Hibernate,因为这些版本的支持时间长于4.3.x已经考虑过了#34;仅限维护&#34 ;并且不再积极改进或开发。

作为参考,前面已经讨论了persistence provider deprecation topic

希望它有所帮助。