【问题标题】:What is the hjmpts column in hybris for?hybris 中的 hjmpts 列是干什么用的?
【发布时间】:2017-10-10 05:38:04
【问题描述】:

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

【问题讨论】:

    标签: hybris


    【解决方案1】:

    它旨在支持乐观锁定,就像 Hibernate 这样的持久层使用@Version 注解所做的那样。

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

    hjmp.throw.concurrent.modification.exceptions(default false) 是一个配置参数,它启用或禁用在更新时检查项目行是否必须与获取 HJMP 实体对象时读取的版本相同。

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


    P.S:如果不开启乐观锁,只会写入脏属性,最终结果是合并。

    【讨论】:

    • 如果我们想对特定模型进行乐观锁应该怎么做?有可能吗?
    猜你喜欢
    • 1970-01-01
    • 2020-12-18
    • 1970-01-01
    • 2016-10-30
    • 2017-11-03
    • 2014-12-20
    • 2021-07-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多