spring - Spring JPA Lock Table 并传播事务
问题描述
我有一个类方法,它从数据库中提取一些行并设置一个锁。
public interface PersonRep extends JpaRepository<Person, String> {
@Lock(LockModeType.PESSIMISTIC_WRITE)
@Query(value = "SELECT p FROM Person as p WHERE p.fProcessed = false")
List<Person> fetchPersonToProccess(@Param("name") String name,Pageable pageable);
}
我有一个调用上述方法的服务层
@Service
public class PersonService{
@Override
@Transactional
public List<Person> fetchPersonToProccess(String name, Pageable pageable) {
return personRep.fetchPersonToProccess(name, pageable);
}
}
我需要在不离开锁的情况下将这些结果行处理到类的另一个方法中。
@Service
public class PersonProcess{
@Transactional
public List<Person> fetchPersonToProccess(UpdateRequest updateRequest, int numPage){
//Process Row
personService.fetchPersonToProccess(..);
}
}
我希望在第二个方法结束时将锁释放到类 PersonProcess 中。我怎样才能做到这一点?
解决方案
推荐阅读
- haskell - 通过 Barbies-TH 将 Barbie 类型用作另一个 Barbie 类型中的字段
- node.js - Mongoose:未调用 ID 时路径“_id”处的 CastError
- r - 如何将整列附加到 r 中另一列的末尾?
- python - Python gnupg“类型错误:需要一个类似字节的对象,而不是'str'”
- google-chrome - chrome.runtime.onMessage.addListener 在页面加载之前不起作用
- jmeter - Jmeter - 分布式(远程)测试执行从连接在执行过程中关闭
- javascript - 使用 router.get('/me', (res,req) => {}) 时如何访问身份验证信息
- javascript - 如何使用 javascript 减少实时日期/时间字符串?
- python - 使用 Python 从网页抓取到动态表
- javascript - 在这种情况下如何优化我的变量?