我明白如果我们使用注释@Transactional。 “save()”方法不是必需的。准确吗?
对于我的例子:
@Transactional
void methodA() {
...
ObjectEntity objectEntity = objectRepository.find();
methodB(objectEntity);
}
void methodB(ObjectEntity obj) {
...
obj.setName("toto");
objectRepository.save(obj); <-- is it necessary?
}
感谢您的帮助
最佳答案
它的工作原理如下:
save()
将实体附加到 session ,并且在事务结束时,只要没有异常,它就会全部保存到数据库中。现在,如果您从数据库获取对象(例如
ObjectEntity objectEntity = objectRepository.find();
),则该对象已附加,您无需再调用 save() 方法。但是,如果对象已分离(例如
ObjectEntity objectEntity = new ObjectEntity();
),则您必须使用 save() 方法才能将其附加到 session ,以便对其所做的更改保存到数据库中。
关于java - @Transactional spring JPA .save() 没有必要吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61460187/