【发布时间】:2011-04-13 04:09:38
【问题描述】:
我有一个带有@WebService 接口的@Stateless EJB,使用容器管理的事务,这意味着在调用方法后,如果没有引发系统异常,容器会自动提交事务。
如果我尝试EntityManager.persist(...) 两个具有相同值的对象用于具有唯一约束的列,容器将在我的代码之外提交时向客户端抛出PersistenceException。 如何捕获此异常以便重新抛出我自己的应用程序异常?
我是否必须在我的方法中手动提交事务才能在提交时捕获异常? (EntityManager.flush() 是正确的做法吗?)如果是这样,容器管理事务的意义何在?
【问题讨论】:
标签: java exception transactions ejb container-managed