我有一个在Hibernate
(java)世界中创建的表,它也被非休眠系统(.NET
使用,但可以是任何东西)。 Hibernate
使用version
列进行交易工作,并且当列为null
时失败(将行检测为“瞬态”状态)。
问题...是否应忽略该列(来自非hibernate视角)?要么,
总是用zero
(或其他值)初始化?要么...
只在创建表的SQL中设置为default 0
?
实时共享Hibernate使用的这些表的最佳策略是什么?
提前致谢!
答案 0 :(得分:1)
如果您要在Hibernate和非Hibernate系统之间共享表,那么非Hibernate系统必须在每次修改行时增加版本号。这是因为Hibernate乐观锁假设如果版本号没有改变,那么该行没有改变。
这也意味着另一个系统在首次创建行时应插入一个值,如0或1。