Недавно в моем приложении были сброшены коммиты, и я полностью озадачен. Нет журналов, нет ошибок, все продолжается, как будто все будет успешно - но фиксация сбрасывается. Обыденный класс, в котором возникает такая проблема:
@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.
Есть мысли? Я бы предпочел не сбрасывать все сразу в БД.