gpt4 book ai didi

java - persistence.xml 中的两个持久性单元 - 一个有效,另一个无效

转载 作者:行者123 更新时间:2023-11-30 22:58:40 24 4
gpt4 key购买 nike

我在使用 Java 中的 JPA 应用程序时遇到了一个奇怪的问题。我正在尝试从 MySQL 数据库读取数据并将其写入 ObjectDB 嵌入数据库,但是当我尝试打开 Persistence 单元时,我收到了这条消息:

Exception in thread "main" javax.persistence.PersistenceException: No Persistence provider for EntityManager named itunes_puSQL
at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:85)
at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:54)
at br.com.lagranzotto.itunes.parser.main.iTunesParser.read(iTunesParser.java:78)
at br.com.lagranzotto.itunes.parser.main.iTunesParser.main(iTunesParser.java:72)

我的persistence.xml如下:

    <persistence-unit name="itunes_pu" transaction-type="RESOURCE_LOCAL">

<provider>com.objectdb.jpa.Provider</provider>

<class>br.com.lagranzotto.itunes.parser.model.Album</class>
<class>br.com.lagranzotto.itunes.parser.model.Artist</class>
<class>br.com.lagranzotto.itunes.parser.model.Cover</class>
<class>br.com.lagranzotto.itunes.parser.model.Track</class>

<properties>
<property name="javax.persistence.jdbc.url" value="objectdb:itunes.odb"/>
</properties>

</persistence-unit>

<persistence-unit name="itunes_puSQL" transaction-type="RESOURCE_LOCAL">

<provider>org.eclipse.persistence.jpa.PersistenceProvider</provider>

<class>br.com.lagranzotto.itunes.parser.model.Album</class>
<class>br.com.lagranzotto.itunes.parser.model.Artist</class>
<class>br.com.lagranzotto.itunes.parser.model.Cover</class>
<class>br.com.lagranzotto.itunes.parser.model.Track</class>

<properties>
<property name="eclipselink.jdbc.password" value="**************"/>
<property name="eclipselink.jdbc.user" value="itunes"/>
<property name="eclipselink.jdbc.driver" value="com.mysql.jdbc.Driver"/>
<property name="eclipselink.jdbc.url" value="jdbc:mysql://localhost:3306/itunes"/>
<property name="eclipselink.ddl-generation" value="drop-and-create-tables"/>
<property name="eclipselink.logging.level" value="INFO"/>
</properties>

</persistence-unit>

</persistence>

每个应用程序不能有超过一个持久性单元?

最佳答案

异常与第一个持久性单元或具有多个持久性单元无关。 JPA 支持并允许在一个应用程序中使用多个持久性单元。

错误消息表明 JPA 找不到可以处理 itunes_puSQL 持久性单元的持久性提供程序(即 JPA 实现)。更具体地说,找不到类 org.eclipse.persistence.jpa.PersistenceProvider,它是 EclipseLink 的一部分(并在您的 XML 中指定为提供程序)。

按照上面的建议,检查你的类路径。确保 EclipseLink 和 ObjectDB 都在类路径中。

关于java - persistence.xml 中的两个持久性单元 - 一个有效,另一个无效,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25082054/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com