在glassfish中JPA事務類型只支持JTA(全局資源,容器事務管理)不支持RESOURCE_LOCAL(本地資源),所以在部署項目之前需要建立連接池和連接資源。
1.創建連接
點擊“資源”->“JDBC”->“連接池”,出現如下頁面:
點擊“新建”創建一個連接池,以mysql舉例
點擊“下一步”按鈕
在屬性中找到:User、ServerName、Port、DatabaseName、Password屬性,如果沒有則手工添加
屬性對應的值分別爲:User->root,ServerName->IP,Port->3306,DatabaseName->連接的數據庫名稱,Password->數據庫密碼
配置好屬性後,點擊“完成”後,可以進入界面點擊“Ping”查看是否可以ping通
如果能ping通說明配置正確。
2.JDBC資源
點擊“資源”->“JDBC”->“JDBC資源”,出現如下頁面:
點擊“新建”
3.persistent.xml配置
<jta-data-source></jta-data-source>標籤對應的是建立的JDBC資源的JNDI名稱
完整的xml文件如下:
<persistence version="2.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_2_0.xsd">
<persistence-unit name="test" transaction-type="JTA">
<jta-data-source>jdbc/_mysql</jta-data-source>
<properties>
<property name="eclipselink.ddl-generation" value="create-tables" />
</properties>
</persistence-unit>
</persistence>