我们的应用程序使用 BMP ejb 2.1 实体 bean。所有数据库交互都是通过普通的 JDBC 和事务进行的。提交/回滚在调用 2.1 实体 bean 的会话 bean 处处理。我们计划删除实体 bean 层,因为 Java EE 容器不再支持它。这是通过将实体 bean 转换为 POJO DAO 层并从 ejb-jar.xml 中删除 bean 定义来实现的。resource-ref 是为所有实体 bean 定义的。
是否足以确保调用 2.1 实体 bean 的会话 bean 定义了相同的资源引用?
我可以删除实体 bean 定义以及资源引用并继续用作 POJO DAO 层吗?
我尝试了删除实体定义以及资源引用的相同方法,并验证数据库提交是否正常工作。想检查我是否错过了考虑任何用例。
<enterprise-beans>
<entity>
<display-name>EmployeeBean</display-name>
<ejb-name>EmployeeBean</ejb-name>
<local-home>employee.EmployeeHome</local-home>
<local>employee.Employee</local>
<ejb-class>employee.EmployeeBean</ejb-class>
<persistence-type>Bean</persistence-type>
<prim-key-class>employee.EmployeePK</prim-key-class>
<reentrant>False</reentrant>
<resource-ref>
<res-ref-name>jdbc/OracleDS</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Application</res-auth>
<res-sharing-scope>Shareable</res-sharing-scope>
</resource-ref>
</entity>
</enterprise-beans>
Employee Bean 我正在从 EJB 转换为 POJO 并从 ejb-jar.xml 中删除实体定义。如果调用会话 bean 定义了相同的资源引用,数据库交互是否仍然可以在没有资源引用的情况下工作,并且它是否会参与 JTA 事务?