2013-09-26 106 views
0

我是Java EE和JPA世界的新手,需要幫助瞭解persistence.xml文件內容。我使用Eclipse IDE,TomEE應用程序服務器,OpenJPA作爲持久性提供程序以及MySQL作爲數據庫。JPA persistence.xml文件內容詳細信息

現在,可以說我有一些Java EE項目,帶有名爲A,B和C的註釋實體,我想將這些實體映射到名爲TestDB的MySQL數據庫。根據實體註釋,我希望在部署期間創建數據庫。在MySQL服務器上,我使用密碼「123」作爲「root」用戶登錄。

persistence.xml中的哪些屬性對應於哪些Java EE環境構件(什麼表示持久性單元,指定數據庫名稱的位置...)?這是正確的persistence.xml文件內容,上述情況:

<?xml version="1.0" encoding="UTF-8"?> 
<persistence version="1.0" 
    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_1_0.xsd"> 

    <persistence-unit name="Test" transaction-type="JTA"> 
     <provider>org.apache.openjpa.persistence.PersistenceProviderImpl</provider> 
     <properties> 

      <property name="openjpa.ConnectionURL" value="jdbc:mysql://localhost:3306/TestDB" /> 
      <property name="openjpa.ConnectionDriverName" value="com.mysql.jdbc.Driver" /> 
      <property name="openjpa.ConnectionUserName" value="root" /> 
      <property name="openjpa.ConnectionPassword" value="123" /> 
      <property name="openjpa.jdbc.SynchronizeMappings" value="buildSchema(ForeignKeys=true)" /> 
      <property name="openjpa.jdbc.DBDictionary" value="mysql" /> 
      <property name="openjpa.Log" value="DefaultLevel=WARN, Tool=INFO" /> 
     </properties> 
    </persistence-unit> 

</persistence> 

還有什麼設置是JPA重要的正常工作? (欣賞任何幫助)

+0

這個問題有點寬泛:當您嘗試使用'persistence.xml'時,您遇到了哪些問題? – Beryllium

+0

我上面寫了一些代碼,關於設置persistence.xml的一些文檔,但這並不意味着它是正確的。我不確定幾件事情:什麼是持久性單位?如何設置persistence.xml屬性以便生成數據庫模式? – Vladimir

+0

其實,我有一個JEE示例(應該是有效的),但不能讓它運行。這是我在嘗試運行ant構建文件時得到的日誌消息的一部分:[code] [java] WARNING:RequestFailed {server = http://127.0.0.1:8080/tomee/ejb} JNDI_LOOKUPnull:/ InitBeanRemote {error =無法打開輸入流到服務器:} [java]線程中的異常「main」org.apache.openejb.client.ClientRuntimeException:來自服務器的無效響應:-1 [/ code] – Vladimir

回答

0

以上persistence.xml丟失數據源標籤: <jta-data-source>TestDB-jta-DS</jta-data-source>

然後,爲Apache TomEE,數據源可以在[tomee]/conf/tomee.xml配置文件中定義。因此,以上persistence.xml適當的數據源定義是:

<Resource id="TestDB-jta-DS" type="DataSource"> 
    JdbcDriver   com.mysql.jdbc.Driver 
    JdbcUrl    jdbc:mysql://127.0.0.1:3306/TestDB 
    UserName   root 
    Password   123 
    JtaManaged   true 
    DefaultAutoCommit false 
</Resource>