gpt4 book ai didi

java - Spring 数据和锁定

转载 作者:搜寻专家 更新时间:2023-10-30 23:02:40 24 4
gpt4 key购买 nike

是否可以在 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 不允许您定义两个具有相同原型(prototype)的函数。你可以有一个选择器,它根据一些环境变量调用函数

    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);
}
}

关于java - Spring 数据和锁定,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31006356/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com