[英]Spring data and locking
是否有可能在spring-data存储库中有两个方法 - 一个没有锁定T findOne(Predicate p);
与相同但锁定@Lock(LockModeType.PESSIMISTIC_WRITE) T findOne(Predicate p);
?
我希望有类似的东西
public interface TransactionRepository extends JpaRepository<Transaction, String>,
QueryDslPredicateExecutor<Transaction> {
@Lock(LockModeType.PESSIMISTIC_WRITE)
@AliasFor("findOne")
Transaction findOne_withLock(Predicate p);
}
不,它不可能
Java不允许您使用相同的原型定义两个函数。 相反,U可以有一个选择器,它根据一些环境变量调用函数
public interface TransactionRepository extends JpaRepository<Transaction, String>,
QueryDslPredicateExecutor<Transaction> {
@Lock(LockModeType.PESSIMISTIC_WRITE)
Transaction findOne_withLock(Predicate p);
default Transaction findOne(Predicate p) {
if (EvironmentCheck) {
return findOne_withLock(p);
}
return findOne(p);
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.