optimistic-locking

    0热度

    1回答

    在Hibernate中实现乐观锁定我读到,我们可以使用版本字段使用@Version在休眠中实现乐观锁定。然后在阅读关于悲观锁定的消息后,我开始知道org.hibernate.LockMode类有一些选项,如LockMode.OPTIMISTIC等,我们可以在session.load()中指定。 所以我的问题是我需要使用LockMode.OPTIMISTIC还有@Version?

    6热度

    1回答

    我试图按顺序实现乐观锁定以避免丢失的更新情况。在我的应用程序中,当两个用户获取相同的记录时,第一个用户通过一些更改来更新它。对于查看同一记录的第二位用户而言,此更改不可见,并且他自己进行一些更改并更新它。由此导致的第一批人变更失败。为了防止这种情况发生,我写了以下内容,但问题仍然存在。我是这个概念的新手,无法确定问题。 我试图通过阅读doc 11.3.4来实现此目的。自定义自动版本控制部分。 配置

    2热度

    1回答

    LockModeType.OPTIMISTIC在LockModeType.OPTIMISTIC_FORCE_INCREMENT执行时不起作用。 @Transactional public void test(Integer task){ if (task == 1) { em.find(Company.class, 1000059, LockModeType.OPTIMIS

    0热度

    2回答

    我有两个hibernate实体:顺序和它的项目(一对多与保存更新级联,没有什么特别的)。 两个用户通过同时添加一个新项目来启动同一个订单的更新,这会触发两个并发线程中的Session.saveOrUpdate(订单)操作。 “订单”和“订单项”都具有@Version列以支持乐观锁定,因此此并发编辑会因为它应该是OptimisticLockException而失败。 然后,我想增加数据库的一致性,并

    2热度

    1回答

    我在里面我的服务之一下面的代码: @Override @Transactional @RetryConcurrentOperation(exception = Exception.class, retries = 12) public void test() { Player player = this.playerRepository.findPlayerById(1L); play

    3热度

    1回答

    您好我正在努力与JPA2的Optimistick锁,我没有更多的想法为什么会发生。 我的情况是,我正在运行多个线程,但DB中有一个存储进度的实体。这意味着不同的线程在执行过程中试图更新这个实体,以便能够看到用户的进度。 我有一个方法addAllItems和addDone。这两种方法都用于通过多个线程更新实体,并通过显示(done/allItems)*100来显示结果。 方法很简单,在开始 @Tra

    0热度

    1回答

    当试图了解基于版本的乐观锁定如何防止“最后提交赢”问题和适当的覆盖时,我遇到了困难。 为了使问题更具体,让我们考虑使用以下伪代码JDBC: connection.setAutoCommit(false); Account account = select(id); if (account.getBalance() >= amount) { account.setBalance(acc

    0热度

    2回答

    我在Web应用程序中以有意义的方式实现NHibernate中的optimisitc并发时遇到问题。下面是不同的场景: 用户A打开一个表单来编辑记录 用户B打开同一表单编辑同一记录 用户A可以节省他们的数据 用户B试图保存他们的数据,但得到数据已更新的警告。 一种常见的情况。这里是更新代码和实体映射文件: <hibernate-mapping xmlns="urn:nhibernate-mappin

    1热度

    1回答

    此模式是否合法? $redis->watch('foo'); $var1 = $redis->get('foo'); $redis->watch('bar'); $var2 = $redis->get('bar'); $redis->multi(); $redis->mset(['foo' => 42, 'bar' => 9001]); $redis->exec(); 或者第

    0热度

    1回答

    我们有一个使用Java和Hibernate的应用程序。我们使用乐观锁和关系数据库。我们有一个共同的情况,我们有一个资源池,两个不同的用户试图同时修改。一个用户可以编辑资源,另一个用户在屏幕上获得“堆栈跟踪”。处理这些情况的常用方法是什么?我们可以使用悲观锁定,但这会显着降低应用程序的性能...