0

使用

  • Java 1.6
  • JBoss AS 7.1.1
  • EclipseLink 2.4.1
  • JTA

更新的问题

当我在使用flush的try catch中自己处理错误时,如何抑制JBoss抛出的堆栈跟踪?

问题

我正在尝试使用em.persist(entity)来持久化一个实体。如果没有违反数据库约束,一切正常。但是,如果持久化实体违反了唯一约束,则会引发异常。我正在使用 JBoss 处理的事务,因此异常是从另一个线程引发的。

我已经发现我可以通过在 persistence.xml 中设置eclipselink.exception-handler来全局处理这些异常。

我的问题是如何在本地捕获和处理这些异常?

4

1 回答 1

1

调用 em.flush() 会立即将语句强制发送到数据库,并且可以包装在 try catch 块中以在提交发生之前处理异常,尽管大多数持久性异常都会将事务标记为回滚。

于 2012-12-11T15:20:47.853 回答