【发布时间】:2013-07-12 05:15:26
【问题描述】:
我正在用 Java 编写一个带有 Hibernate 的应用程序,我正在尝试执行以下操作:
- 从数据库中查询对象列表,然后针对每个对象:
- 将其从数据库中删除。
- 对其执行操作。
- 如果操作失败,请修改对象并将其重新插入数据库。
但是,我正在使用不可靠的数据库连接,必须先从数据库中成功删除对象(步骤 2),然后再对其执行操作(步骤 3)。在失败时成功重新插入对象(第 4 步)很重要但并不重要。
(更高级别的要求是,如果对对象成功执行操作,则它不能保留在数据库中——这就是为什么我得出结论,我必须先将其删除并确保在尝试操作之前将其实际删除.)
我不完全了解 Hibernate 会话、事务和对象状态(例如“分离”)。我怎样才能做到这一点?
我已经尝试了太多的打开/关闭会话、提交/回滚事务、驱逐/合并/持久化/保存/删除/更新对象的排列以在此处列出,但我尝试的所有操作都因一个错误或另一个错误而失败。我一直在参考 Hibernate 文档,但基本上我在这里是在黑暗中摇摆,因为我真的不明白我在做什么,所以欢迎任何建议。
【问题讨论】:
标签: java database hibernate transactions robustness