【问题标题】:Database operation in one go (one transcation)一次完成数据库操作(一个事务)
【发布时间】:2013-09-01 18:34:36
【问题描述】:

我正在开发一个driver-booking 管理系统。 我想要做的是我需要在booking table 中添加一个driver(这意味着将预订分配给司机)。在此之前,我需要检查预订记录是否与驾驶员记录相关联(预订是否已分配),如果是则什么都不做。

它适用于一个用户这样做。 但问题是多个用户在same record, same time 上执行此操作。

如何处理这种情况。 我知道@transactional 注释。这是正确的解决方案吗? 我应该将此应用于单一方法而不是我的booking Assigning Service

使用sync block 会大大降低处理速度,所以目前我反对这个选项

【问题讨论】:

    标签: hibernate spring-mvc service dao transactional


    【解决方案1】:

    乐观锁定假设多个事务可以在不相互影响的情况下完成,因此事务可以在不锁定它们影响的数据资源的情况下继续进行。在提交之前,每个事务都验证没有其他事务修改过它的数据。如果检查显示有冲突的修改,提交事务将回滚[1]。

    在乐观锁的帮助下,您可以处理您的问题。 Hibernate 提供了实现这一点的方法。

    【讨论】:

    • 谢谢,我会尝试然后确认。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-05-27
    • 2010-10-11
    • 1970-01-01
    相关资源
    最近更新 更多