繁体   English   中英

Spring数据和锁定

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM