最近,我的应用程序一直看到提交被丢弃,我完全感到困惑。没有日志,没有错误,一切都会继续,就好像一切都会成功一样-但是提交已被删除。发生此类问题的精简课程:
@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;
}
我们的大多数提交都毫无问题地到达数据库,每隔一段时间(可能是千分之一)一次,而我们看到的是提交被丢弃到未保存bar
的地方。
我们是否将此行为标记为Transactional
并不重要。我没有从数据库中看到任何错误日志,并且该方法从不引发任何错误,并且在我可以访问bar
的方法返回的模型的下游。只是后者的调用导致Bar
为null
。
我们是带有Postgres 9.5的Spring Boot 2.0,这是超过3年的应用程序历史的相对新行为,我无法在产品环境之外进行复制。
有什么想法吗?我宁愿不必立即将所有内容刷新到数据库。