hibernate乐观锁/处理过时对象异常

本文关键字:过时 对象 异常 处理 乐观 hibernate | 更新日期: 2023-09-27 18:15:14

我在对象树中有一个对象,它是由非休眠乐观锁特性"保护"的。

如果我捕获在事务提交中发生的staleobjectexception,我必须手动遍历树,但如果事务额外提交了一些独立的对象-这些对象将丢失…(

两者都使我相信架构中的错误

但是什么是正确的方法呢?

每个对象树的单个事务,不要在staleobjectexception上构建冲突处理,…?

我对我现在的方法有不好的感觉…

hibernate乐观锁/处理过时对象异常

我想加入我的观点,我的经验。

(所以它不一定是你问题的答案)。我喜欢你/我们质疑我们自己的代码,我们自己的设计/架构——这是一个很好的标志。坏的是,如果我们忽略了

有错误吗?

这里是一组应该遵循的规则:最佳编码实践。

其中之一是(摘录):

保持代码简单

程序员写的代码应该很简单。复杂的逻辑为了实现一件简单的事情,应该把它保持在最低限度代码将来可能会被其他程序员修改。的逻辑一个程序员实现的东西对另一个程序员来说可能并不完全有意义。所以,始终保持代码尽可能简单

换句话说:如果它看起来不是一个好的架构,那它就不是。如果你不喜欢,别人也不会喜欢。

版本控制,如何(建议)

好吧,下面我陈述了一些常见的方法,我们确实应用于版本控制。

  • 版本控制仅对业务对象有用(业务对象永远不应超过域中所有对象的20%)。其他(代码列表,如货币,国家…)没有版本。
  • 每个对象都有自己的树管理(CRUD操作)。在这种情况下,只有这个对象是受版本控制的。例如,如果Address只能与Person一起存在,则两个对象都在一次遍历中存储(创建或修改Person)。只有人有版本

就是这样。真的,没有比这更复杂的了。但如果这不能回答你的问题,我能理解…我只是想在这次讨论中提出我的意见。