2017-09-03 88 views
0

我正在開發一個Java EE應用程序,使用Servlet,JSP,JPA,EJB。由於我已經在Websphere控制檯中配置了一個數據源(Oracle 11g),因此我想知道是否必須在我的代碼中使用CMP實體bean,或者使用帶有persistence.xml的簡單無狀態會話bean(使用配置的數據源的JNDI WAS)。WAS 8.5.5 CMP/BMP和持久性數據源

在此先感謝

回答

1

您不必使用CMP實體bean。 JPA是EJB實體bean的替代品,應該是首選技術(使用WAS中配置的數據源的JNDI)。 CMP/BMP實體bean現在是Java EE的可選部分,並且在WebSphere Liberty中不受支持(雖然它們在WebSphere傳統中仍然受支持,即使在v9.0中也是如此)。另外,你甚至不需要在JPA(persistence.xml)中使用無狀態會話bean;您可以直接從您的servlet使用JPA,儘管無狀態會話可能是封裝數據庫訪問並提供事務支持的好方法。

請注意,應避免同時使用CMP實體bean和JPA(persistence.xml)。您最終會遇到兩種嘗試訪問(並鎖定)數據庫行的不同技術,並且會遇到死鎖和/或損壞。