我有一个有状态的bean,用于创建一对数据库查询。我使用我调用的第一个方法打开连接,但我真的只想在EJB客户端完成Stateful bean后关闭连接。我认为我可以将关闭数据库连接的逻辑放在@PreDestroy方法中。使用@PreDestroy关闭数据库连接的有状态Bean
这似乎工作,但我很好奇的影响。具体来说,EJB会话是否完成?这是容器管理的事务,所以我会假设当EJB客户端方法完成时,EJB事务也一样。具体来说,PreDestroy方法是否被调用?交易还在吗?或者它已经提交并重新投入池中?谢谢!
如果你正在使用它们,你应该使用无状态bean是DB查询。 – 2013-02-19 03:29:07
你说得对。我写了一个通用的bean,打开和关闭每个db事务的会话。我需要一个不同的stageful bean,这样我可以在方法调用之间保持会话打开。我不希望这个有状态数据库bean的客户端必须记得关闭会话,这就是为什么我对与bean有关的事务生命周期感到好奇的原因。 – user1608137 2013-02-19 05:00:14