У меня есть метод класса, который извлекает некоторую строку из базы данных и устанавливает блокировку.
public interface PersonRep extends JpaRepository<Person, String> {
@Lock(LockModeType.PESSIMISTIC_WRITE)
@Query(value = "SELECT p FROM Person as p WHERE p.fProcessed = false")
List<Person> fetchPersonToProccess(@Param("name") String name,Pageable pageable);
}
У меня есть сервисный уровень, который вызывает вышеуказанный метод как
@Service
public class PersonService{
@Override
@Transactional
public List<Person> fetchPersonToProccess(String name, Pageable pageable) {
return personRep.fetchPersonToProccess(name, pageable);
}
}
I нужно обработать эти строки результата в другой метод класса, не выходя из блокировки.
@Service
public class PersonProcess{
@Transactional
public List<Person> fetchPersonToProccess(UpdateRequest updateRequest, int numPage){
//Process Row
personService.fetchPersonToProccess(..);
}
}
Я хотел бы, чтобы блокировка была снята в конце второго метода в классе PersonProcess. Как я могу это сделать?