Spring Data JPA - JpaRepository: повторная попытка и откат? - PullRequest
0 голосов
/ 07 мая 2020

Я использую Spring DATA JPA для работы с моей базой данных (PostgreSQL).

Допустим, в моем коде есть следующий репозиторий.

public interface StoreRepository extends JpaRepository<Store, UUID> {

}
public interface AddressRepository extends JpaRepository<Address, UUID> {

}

И у меня есть следующий сервис для использования репозитория

@Autowired StoreRepository storeRepository;
@Autowired AddressRepository addressRepository;

public void doSomeProcessing(){

  Optional<Store> oStore = storeRepository.findById(UUID id);

  if oStore.isPresent(){
    // Update something in Store,
    // Create new Address in Address Repository
    // do some work..
}
}

Вопрос 1. Допустим, что-то происходит в методе doSomeProcessing (), выполняет ли Spring DATA автоматический откат всех транзакций, которые произошли в методе doSomeProcessing ()? Например, если он создал новый адрес в репозитории адресов, он автоматически удаляет его, когда возникает какое-то исключение?

Вопрос 2. Мой провайдер базы данных рекомендует мне реализовать повторный лог c, если и когда возникнет конфликт транзакций бывает. (Postgres код ошибки 40001). Кто-нибудь знает, будет ли Spring DATA автоматически повторять попытку при возникновении такой ошибки? Если нет, как мне реализовать повторный вход в приведенный выше код?

Спасибо

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...