With @Transaction
和Spring的跟踪级别日志记录我发现Hibernate在db约束上有一个异常,但它只是回退事务。我尝试使用@Exception
没有成功,试图抓住它。Spring Hibernate吃异常
我在网上看到一个建议,使用Spring AOP @AfterThrowing
来捕捉这样的事件。
这似乎是一个处理普通事件的相当复杂的方式。 try/catch和老式的提交/回滚似乎更容易。 Spring Hibernate中没有更好的方法 ?
我正在处理队列中的XML消息。根据我得到的异常的类型,我可能只想捕获它,并将坏的传入队列消息放入数据库错误表中并继续事务。 (如果我只是盲目地回滚消息,将会放回队列,这在某些情况下可能是好的,但在其他情况下不会)。
从我读过的有些方法知道一些错误(出于某种原因不是约束错误)并记录它们。在发生异常之后是否有办法中断事务并决定是否要提交,继续或回滚?
如果没有,可以使用旧式提交并使用spring hibernate进行回滚吗?
这不是吃它处理它的例外。吃东西会很有吸引力,不会回滚。 –
通过吃饭我的意思是在处理后不会抛出另一个异常。它应该抛出一个Hibernate运行时异常(Exception的子类),但是当我使用@Exception时,什么都不会被捕获。我想知道异常,并根据其类型更改处理。 – user1069528
他们似乎已经去了一个通知模型。我个人不会对“有例外,所以我回滚”感到不舒服。现在,这些溢出的牛奶已经在地毯下扫过了。 –