我们的应用程序使用BMP ejb 2.1实体bean。所有数据库交互都是通过纯JDBC和事务进行的。提交/回滚在调用2.1实体Bean的会话Bean中进行处理。我们计划删除实体Bean层,因为Java EE容器不再支持它。
通过将实体bean转换为POJO DAO层并从ejb-jar.xml中删除bean定义可以实现这一点。为所有实体bean定义了resource-ref。
是否足以确保调用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事务?