2015-06-23 2 views
6

Возможно ли иметь два метода в репозитории весенних данных - один без блокировки 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); 
} 

ответ

0

Нет, его не представляется возможным

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); 
     } 
    } 
Смежные вопросы