![](/img/trans.png)
[英]Is it a good convention to define save method inside hibernate/jpa entity class?
[英]Is it a good or bad convention to update entity / row without calling save() in hibernate / spring-jpa?
最近我發現如果在@Transactional
塊中,沒有必要調用repository.save()
。 Hibernate / Spring-JPA 將在退出事務時自動更新行。 例如
@Transactional
public updateName(Long id, String name) {
User user = repository.findOneById(id);
user.setName(name);
// repository.save(user); // <- looks not necessary?
}
這是一個好的或壞的約定? 恐怕有時@Transactional
在某些特殊情況下不起作用。
有時如果沒有調用其他更新方法,Hibernate 上下文將不會執行保存操作。 調用 save 方法總是更好。
為什么你認為@Transactional
不會“工作”? 您正在利用該實體在 JPA 術語中是“托管”的事實,所以這完全沒問題。 事實上,使用save
甚至可能導致不必要的操作,因為 Hibernate 必須同步持久化上下文。 如果您在事務中有其他操作,一次執行所有操作可能更有效,所以我不建議調用 save 除非您真的希望 state 同步。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.