у меня
@Transactional(timeout = 600)
@Service
public class CustomerServiceImpl implements CustomerService {
@Autowired
private CustomerRepository customerRepository;
@Override
public void actOnCustomer(Long customerId) {
...
вместе с
public interface CustomerRepository extends CrudRepository<Customer, Long> {
@Lock(LockModeType.PESSIMISTIC_WRITE)
Optional<Customer> findById(Long id);
Кажется, что строка клиента заблокирована, и значение тайм-аута, похоже, оказывает должное влияние.
Теперь я хочу иметь возможность установить значение тайм-аута программно и / или используя мой файл application.properties . Я видел несколько примеров установки javax.persistence.lock.timeout
в свойствах, передаваемых методу EntityManager
find
, но я не уверен, как лучше включить вызовы EntityManager
в репозиторий Spring, и кажется, что должен быть более Spring-y способ (например, установка spring.jpa.properties.javax.persistence.lock.timeout=600
в application.properties, который, похоже, не работает).
Так как мне это сделать?