JPA连接到另一个数据库,而不是我的persistence.xml

时间:2019-04-01 12:03:31

标签: jpa configuration wildfly datasource

这是我的持久性xml文件

<?xml version="1.0" encoding="UTF-8"?>
<persistence version="2.1"
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">
<persistence-unit name="GoodreadsJpa">
    <provider>org.eclipse.persistence.jpa.PersistenceProvider</provider>
    <class>entity.Book</class>
    <class>entity.Review</class>
    <class>entity.UserActionLog</class>
    <class>entity.User</class>
    <properties>
        <property name="javax.persistence.jdbc.url" value="jdbc:mysql://localhost:3306/goodreads_clone?useUnicode=true&amp;useJDBCCompliantTimezoneShift=true&amp;useLegacyDatetimeCode=false&amp;serverTimezone=UTC;" />
        <property name="eclipselink.jdbc" value="jdbc:mysql://localhost:3306/goodreads_clone?useUnicode=true&amp;useJDBCCompliantTimezoneShift=true&amp;useLegacyDatetimeCode=false&amp;serverTimezone=UTC;"/>
        <property name="javax.persistence.jdbc.user" value="root" />
        <property name="javax.persistence.jdbc.driver" value="com.mysql.jdbc.Driver" />
    </properties>
</persistence-unit>

如您所见,我提供了用于连接数据库的jdbc url。但是,当我运行应用程序时,会获得以下信息。

14:31:57,377 INFO  [org.eclipse.persistence.connection] (default task-2) Connected: jdbc:h2:mem:test
User: ROOT
Database: H2  Version: 1.3.173 (2013-07-28)
Driver: H2 JDBC Driver  Version: 1.3.173 (2013-07-28)

表明我已连接到jdbc:h2:mem:test,因此无法执行所需的操作。

这让我觉得我连接到错误的数据库吗?我丢失了什么吗?我实际上该如何连接到所需的数据库?

我正在使用Wildfly 10和EclipseLink。不使用Maven。

2 个答案:

答案 0 :(得分:1)

假设您使用的是容器管理的em,则应在Wildfly配置(standalone.xml中定义数据源。然后,您应该在持久性单元定义中使用persistence-unit.jta-data-source(或persistence-unit.non-jta-data-source)标记来引用数据源。

如果您同时需要MySQL和H2数据源,则可以创建多个持久性单元,并使用@PersistenceContext(name = "...")

进行区分。

答案 1 :(得分:0)

1。您需要在Jboss中添加mysql驱动程序,例如:Can't add mysql driver to jboss

或这里 https://synaptiklabs.com/posts/adding-the-mysql-jdbc-driver-into-wildfly/

  1. 您需要在standalone.xml配置文件中添加mysql数据源,如下所示: https://zorq.net/b/2011/07/12/adding-a-mysql-datasource-to-jboss-as-7/

    <datasource jndi-name="java:/mydb" pool-name="my_pool" enabled="true" jta="true" use-java-context="true" use-ccm="true"> <connection-url>jdbc:mysql://localhost:3306/mydb</connection-url> <driver>mysql</driver> <security> <user-name>root</user-name> <password>root</password> </security> <statement> <prepared-statement-cache-size>100</prepared-statement-cache-size> <share-prepared-statements /> </statement> </datasource>