通過使用CDI如在下面的代碼:進樣冬眠PersistenceUnit
@PersistenceUnit
EntityManagerFactory emf;
我想注入我休眠EntityManagerFactory
目前,如果我執行下一行:
EntityManagerFactory emf = Persistence.createEntityManagerFactory("HibernatePersistanceProv");
它按照預期工作,但如果我使用第一種方法嘗試使用Derby連接,我知道這是因爲我收到下一條錯誤消息:
org.hibernate.exception.GenericJDBCException: Unable to acquire JDBC Connection
通過堆棧跟蹤我知道它是由於這個原因造成的。
Error connecting to server localhost on port 1527 with message Connection refused.
我知道那是因爲它試圖連接到(Java DB的)德比分貝。
我persistance.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="HibernatePersistanceProv" transaction-type="RESOURCE_LOCAL">
<provider>org.hibernate.ejb.HibernatePersistence</provider>
<exclude-unlisted-classes>false</exclude-unlisted-classes>
<properties>
<property name="hibernate.connection.username" value="root"/>
<property name="hibernate.connection.url" value="jdbc:mysql://localhost:3306/aschema"/>
<property name="hibernate.connection.driver_class" value="com.mysql.jdbc.Driver"/>
<property name="hibernate.connection.username" value="root"/>
<property name="hibernate.connection.password" value=""/>
<property name="hibernate.show_sql" value="true"/>
<property name="hibernate.format_sql" value="false"/>
<property name="hibernate.dialect" value="org.hibernate.dialect.MySQLDialect"/>
<property name="javax.persistence.jdbc.url" value="jdbc:mysql://localhost:3306/aschema"/>
<property name="javax.persistence.jdbc.user" value="root"/>
<property name="javax.persistence.jdbc.driver" value="com.mysql.jdbc.Driver"/>
</properties>
</persistence-unit>
</persistence>
我讀,顯然我需要指定一個standalone.xml
提供不同<jta-data-source>
但它接縫我一點比它應該是什麼更復雜(我不想追逐錯誤的兔子),我已經從Java EE世界一段時間了,所以我認爲我的自我是全新的(對於假人解釋廣泛讚賞)。
(如果有幫助)我在GlassFish 4.1服務器上運行。請詢問是否需要其他信息。
「*我正在閱讀,顯然我需要指定'standalone.xml'來提供不同的''。*」'standalone.xml'是一個JBoss/WildFly特定配置文件。 –
Tiny