0 Вопрос: Spring Boot Data JPA сбрасывает коммиты с Postgres 9.5

вопрос создан в Wed, May 8, 2019 12:00 AM

Недавно в моем приложении были зафиксированы отклонения коммитов, и я полностью озадачен. Нет журналов, нет ошибок, все продолжается, как будто все будет успешно - но фиксация сбрасывается. Обыденный класс, в котором возникает такая проблема:

@Autowired MyRepository repo;

public Model saveMyModel(){
    final Model model = new Model();
    model.setFoo("something");
    repo.save(model) 

    model.setBar("bar")
    repo.save(model)

    return model; 
}

Большинство наших коммитов делают это без проблем с БД, каждый раз (возможно, 1 из 1000), в то время как мы видим, что коммиты сбрасываются там, где bar не сохраняется.

Неважно, отметим ли мы это Transactional для этого поведения. Я не вижу никаких журналов ошибок из нашей БД, и этот метод никогда не выдает никаких ошибок, и ниже по потоку от возвращенной модели из метода, я могу получить доступ к bar без проблем. Только последние вызовы приводят к Bar как null.

Мы являемся Spring Boot 2.0 с Postgres 9.5, это относительно новое поведение за более чем 3 года истории приложения, и я не могу копировать вне нашей среды prod.

Есть мысли? Я бы предпочел не сбрасывать все сразу в БД.

    
1
  1. не уверен, что вы собираетесь, но вы должны использовать merge, как только бин будет сохранен для обновления. Проверьте раздел 3.3 baeldung.com/hibernate-save-persist-update-merge -saveorupdate
    2019-05-08 16: 12: 34Z
  2. Данные Spring должны обрабатывать слияние, если сущность уже существует, хотя у них нет явного метода слияния.
    2019-05-08 16: 22: 15Z
  3. Ну, внутренне это делает то же самое. pastebin.com/fANAv9LH это, вероятно, что-то другое.
    2019-05-08 16: 51: 43Z
  4. Вы можете открыть вопрос в весенней загрузке JPA и связать его с StackOverflow. github.com/spring-projects/spring-data-jpa
    2019-05-08 16: 55: 01Z
0 ответов                              0                         
источник размещен Вот