以前使用JPA的實現是toplink,現在改為hibernate,所以要修改persistence.xml文件,兩者的配置有一些不一樣,並且在EE環境下面和SE的環境下面也有不一樣,還有一點,那就是當persistence.xml裡面有些格式出錯的時候,雖然出錯的不是我們需要的那個單元,但也會使得整個persistence.XML報廢。
下面帖的是在SE的環境下面使用toplink和hibernate的實現,兩者都寫在同一個persistence.XML裡面。這樣切換起來也方便一些。
Code highlighting produced by Actipro CodeHighlighter (freeware)
http://www.CodeHighlighter.com/
-->
在SE的環境下面,是不能使用容器的JTA的數據源的。並且不能使用
本文重點是記錄下兩個常用的JPA的實現的配置。目前是在SE環境下的配置。EE環境下面的配置如下:
Code highlighting produced by Actipro CodeHighlighter (freeware)
http://www.CodeHighlighter.com/
-->
在EE環境下面使用JPA配置就簡單了許多,首先他可以把當前模塊的CLASS文件都包括進來,不用手工指定。並且也少了很多有關於數據庫連接的操作,因為這個時候都是從容器裡面去取數據源的。並且此時的事務是由容器去管理的,也就是使用JTA,不再是RESOURCE_LOCAL了。這樣在代碼裡面就不用em.getTransaction()。begin();和em.getTransaction()。commit()了,並且可以使用注入功能,把EntityManager注入到使用它的地方了。