hybris 中的 hjmpts 列是干啥用的?
Posted
技术标签:
【中文标题】hybris 中的 hjmpts 列是干啥用的?【英文标题】:What is the hjmpts column in hybris for?hybris 中的 hjmpts 列是干什么用的? 【发布时间】:2017-10-10 05:38:04 【问题描述】:我有一个 Hybris 系统,在每个数据库表中都有一个名为“hjmpts”的列。该列包含 INT 值。有人知道这个专栏的原因吗?
【问题讨论】:
【参考方案1】:它旨在支持乐观锁定,就像 Hibernate 这样的持久层使用@Version
注解所做的那样。
基本上,当您从数据库中选择一行并返回当前版本时。当行更新时,版本列会增加。当您更新行时,您在查询中使用 WHERE 子句以匹配您选择的版本。如果更新没有修改任何行,那么您知道其他东西同时更新了该行(和版本)。
hjmp.throw.concurrent.modification.exceptions
(default false) 是一个配置参数,它启用或禁用在更新时检查项目行是否必须与获取 HJMP 实体对象时读取的版本相同。
这意味着在属性中将 hjmp.throw.concurrent.modification.exceptions
参数设置为 true
会激活乐观锁定,当然会增加看到乐观并发异常的风险,例如 HJMPException(PK 已同时修改 - 预期版本 ...),这将强制事务回滚
P.S:如果不开启乐观锁,只会写入脏属性,最终结果是合并。
【讨论】:
如果我们想对特定模型进行乐观锁应该怎么做?有可能吗?以上是关于hybris 中的 hjmpts 列是干啥用的?的主要内容,如果未能解决你的问题,请参考以下文章