【发布时间】:2012-05-08 18:16:31
【问题描述】:
我在 Try/Catch 块内有一个方法,它调用 Hibernate DB Save 操作来插入一行。
即使存在 DB 问题,该方法也会成功完成(例如,当我将 NULL 插入非 NULL 列时)。然后,在稍后的某个时间点,Hibernates 会尝试“刷新”或完成事务,这就是引发错误的时候。
这会打乱我的代码流程,因为我依赖于我的方法成功完成来做其他事情,例如发送电子邮件。调用我的方法后,我继续发送电子邮件,假设没有发生错误(否则我会被抛出我的代码流并进入我的 Catch 块,但这是不是发生)。
有没有人知道如何处理这种情况?
【问题讨论】:
-
您使用什么样的事务管理/策略?如果您希望将事情提交到数据库,您应该使用显式事务。依赖隐式事务绝不是一个好主意...hibernateprofiler.com/learn/alerts/DoNotUseImplicitTransactions
-
我不确定,但是有没有办法在休眠层上立即自动刷新? (我不是在谈论 DB 层,它仍然是一个事务。)
-
您为什么没有收到异常?像 Hibernate 或 JDBC 异常?
标签: java database hibernate exception transactions