hybris中的hjmpts列是什么?

时间:2017-05-11 09:33:20

标签: hybris

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

1 个答案:

答案 0 :(得分:5)

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

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

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

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

P.S:如果你没有启用乐观锁定,只会写入脏属性,最终结果将是合并。