hybris中的hjmpts列是什么?

Chr*_*oph 3 hybris

我有一个Hybris系统,在每个数据库表中都有一个名为"hjmpts"的列.该列包含INT值.有人知道这个专栏的原因吗?

Vik*_*ant 6

它的意思是支持乐观锁定,就像Hibernate使用@Version注释这样的持久层一样.

基本上,当您从数据库中选择一行并返回当前版本时.更新行时,版本列会递增.更新行时,在查询上使用WHERE子句以匹配您选择的版本.如果更新没有修改任何行,那么您知道其他时候已经更新了行(和版本).

hjmp.throw.concurrent.modification.exceptions(默认为false)是config参数,它启用或禁用检查更新时项目行必须具有与获取HJMP实体对象时已读取的版本相同的版本.

这意味着在属性中设置hjmp.throw.concurrent.modification.exceptions参数会true激活乐观锁定,当然也会增加看到乐观并发异常的风险,例如HJMPException(PK被同时修改 - 预期版本......),这会强制事务回滚


PS:如果不启用乐观锁定,则只会写入脏属性,最终结果将是合并.