WAS 8.5.5 CMP/BMP 和持久性数据源

WAS 8.5.5 CMP/BMP and Persistence DataSource

我正在开发 Java EE 应用程序,使用 Servlet、JSP、JPA、EJB。因为我已经在 Websphere 控制台中配置了一个数据源(Oracle 11g),所以我想知道我是否必须在我的代码中使用 CMP 实体 bean,或者一个简单的无状态会话 bean,带有 persistence.xml(使用数据源的 JNDI在 WAS 中配置)。

提前致谢

您不必使用 CMP 实体 bean。 JPA 是 EJB Entity bean 的替代品,应该是首选技术(使用 WAS 中配置的数据源的 JNDI)。 CMP/BMP 实体 bean 现在是 Java EE 的可选部分并且在 WebSphere Liberty 中不受支持(尽管它们在传统的 WebSphere 中继续受支持,即使在 v9.0 中也是如此)。

此外,您甚至不需要在 JPA 中使用无状态会话 bean (persistence.xml);您可以直接从您的 servlet 使用 JPA,尽管无状态会话可能是封装数据库访问和提供事务支持的好方法。

请注意,应避免同时使用 CMP 实体 bean 和 JPA (persistence.xml)。您最终会使用两种不同的技术来尝试访问(和锁定)数据库行,并希望遇到死锁 and/or 损坏。