Mar*_*ila 6 java spring querydsl spring-data-jpa
是否有可能在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);
}
Run Code Online (Sandbox Code Playgroud)
小智 0
不,这是不可能的
Java 不允许定义两个具有相同原型的函数。您可以使用一个选择器来根据某些环境变量调用函数
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);
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
842 次 |
| 最近记录: |