java lockmodetype_java-使用Spring Data JPA查找实体时如何启用LockModeType.PESSIMISTIC_WRITE?...

我该如何实现与以下代码等效的功能:

tx.begin();

Widget w = em.find(Widget.class, 1L, LockModeType.PESSIMISTIC_WRITE);

w.decrementBy(4);

em.flush();

tx.commit();

...但是使用Spring和Spring-Data-JPA批注?

我现有代码的基础是:

@Service

@Transactional(readOnly = true)

public class WidgetServiceImpl implements WidgetService

{

/** The spring-data widget repository which extends CrudRepository. */

@Autowired

private WidgetRepository repo;

@Transactional(readOnly = false)

public void updateWidgetStock(Long id, int count)

{

Widget w = this.repo.findOne(id);

w.decrementBy(4);

this.repo.save(w);

}

}

但是我不知道如何指定updateWidgetStock()方法中的所有操作都应使用悲观锁集。

Spring Data JPA批注updateWidgetStock()可让您设置LockModeType.PESSIMISTIC_WRITE,但我不知道将其放在updateWidgetStock方法上是否有效。 听起来更像是WidgetRepository上的注释,因为Javadoc说:

org.springframework.data.jpa.repository

@Target(值=方法)

@Retention(值=运行时间)

@记录

公共@接口锁

用于指定执行查询时要使用的LockModeType的注释。 当在查询方法上使用Query或从方法名称派生查询时,将对它进行评估。

...因此似乎无济于事。

如何使我的updateWidgetStock()方法与LockModeType.PESSIMISTIC_WRITE集一起执行?

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值