gpt4 book ai didi

java - @Transactional spring JPA .save() 没有必要吗?

转载 作者:行者123 更新时间:2023-12-01 17:06:35 25 4
gpt4 key购买 nike

我明白如果我们使用注释@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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com