当前位置: 首页 > 知识库问答 >
问题:

JPA:配置持久性提供程序

辛健
2023-03-14

我正在尝试为drools会话配置JPA持久性(代码来自drools文档)

>

  • 我在pom.xml中添加了drools-persistence-jpa、Bitronix事务管理器和com.h2database依赖项

    我在“src/META-INF”中的Eclipse项目中创建了一个META-INF文件夹作为Source-Folder。

    [...]EntityManagerFactory emf=persistence.createEntityManagerFactory(“org.drools.persistence.jpa”);[...]

    运行测试时,我得到以下异常:

    Exception:在javax.Persistence.Persistence.createEntityManagerFactory(Persistence.java:69)在javax.Persistence.Persistence.createEntityManagerFactory(Persistence.java:47)在com.sample.mytest.testjpa(mytest.java:112)没有名为org.drools.Persistence.jpa的EntityManager的持久性提供程序

    我比较肯定的是,我创建META-INF或persistence.xml的方式有问题(见下文)。有什么建议吗?

    <?xml version="1.0" encoding="UTF-8"?>
    <persistence version="1.0"
        xmlns="http://java.sun.com/xml/ns/persistence" xmlns:orm="http://java.sun.com/xml/ns/persistence/orm"
        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_1_0.xsd 
        http://java.sun.com/xml/ns/persistence/orm 
        http://java.sun.com/xml/ns/persistence/orm_1_0.xsd">
        <persistence-unit name="org.drools.persistence.jpa" transaction-type="JTA">
            <provider>org.hibernate.ejb.HibernatePersistence</provider>
            <jta-data-source>jdbc/testDatasource</jta-data-source>
            <class>org.drools.persistence.info.SessionInfo</class>
            <class>org.drools.persistence.processinstance.ProcessInstanceInfo</class>
            <class>org.drools.persistence.processinstance.ProcessInstanceEventInfo</class>
            <properties>
                <property name="hibernate.dialect" value="org.hibernate.dialect.H2Dialect" />
                <property name="hibernate.max_fetch_depth" value="3" />
                <property name="hibernate.hbm2ddl.auto" value="create" />
                <property name="hibernate.show_sql" value="true" />
                <property name="hibernate.connection.autocommit" value="true" />
                <property name="hibernate.transaction.manager_lookup_class" value="org.hibernate.transaction.BTMTransactionManagerLookup" />
            </properties>
        </persistence-unit>
    </persistence>
    
  • 共有1个答案

    苏涵润
    2023-03-14

    我认为问题与您放置persistence.xml文件的位置有关。您必须将src/meta-inf放在src/main/resources/meta-infsrc/test/resources/meta-inf中,而不是src/meta-inf

    编辑:在persistence.xml文件中,您声明希望使用org.hibernate.ejb.HibernatePersistence作为提供程序。根据您的评论,您没有将hibernate-entitymanager作为依赖项[source]。尝试添加该依赖项。

    希望有帮助,

     类似资料:
    • 我正在使用JPA和Hibernate开发一个Swing应用程序。但每次我尝试调用以下代码以获取 我得到以下异常: 和 是 依赖关系: 除 junit 之外的所有依赖项都在类路径中

    • 我是EE的新手,我正在Weblogic 12c上开发一个应用程序。数据源在管理控制台中测试良好。当EJB试图访问它时,它会抛出这个ClassNotFoundException。我已经做了三个小时的研究,我知道问题是一些jar不在服务器的类路径中,但我不知道是哪一个!!!我正在使用默认的Eclipse Link持久性提供程序并使用MySQL驱动程序。这两个都是用Weblogic打包的(根据Oracl

    • 我正在开发一个java ee应用程序,使用jpa来控制mysql db和Struts。不幸的是,当我在tomcat服务器上运行该项目时,我得到了这个错误。 我已经在网上搜索了一个解决方案,但没有解决我的问题。以下是文件: src/test/libro.java src/meta-inf/persistence.xml src/struts.xml webContent/web-inf/web.xm

    • 我的动态 Web 应用程序有问题。我刚刚开始学习JavaEE 6,现在我在JPA上堆叠。我配置了我的应用程序,添加了库,但我仍然得到这个令人讨厌的信息:没有名为X的EntityManager的持久性提供程序。我试图在互联网上得到答案,但没有什么帮助我。 这是我的persistance.xml文件: 这是我的班级Uzytkownik.java: 以及servlet中我的EntityManagerFa

    • 我根本无法解决这个问题,而且有大量的堆栈溢出帖子都带有相同的错误消息。我都试过了,但还是没能成功。也许我在寻找一些小东西。我真的需要帮助,提前谢谢你。 错误消息 这是persistence.xml文件 EntityManagerFactory

    • 我正要为一个新的应用程序创建一个后端,但在配置时遇到了问题。我使用的是<code>GlassFish 5.0.0</code>和<code>Hibernate 5.4.5。最终</code>与<code>MySQL</code>一起使用。 我得到的错误是: < code > persistence . XML : 这是: < code>persistence.xml位于< code > proje