【发布时间】:2021-01-06 07:43:57
【问题描述】:
我们正在使用 JPA + Spring + EJB 的 Toplink 实现。在我们的一个 EJB 中,我们有这样的东西:
public void updateUser(long userId, String newName){
User u = em.get(User.class, userId);
u.setName(newName);
// no persist is invoked here
}
所以,基本上这个updateUser() 方法应该使用给定的userId 更新用户的名称。
但是这个方法的作者忘记调用em.persist(u)了。
最奇怪的是它运行良好。怎么会这样?我百分百确定
如果不调用em.persist() 或em.merge(),就无法将更改保存到数据库中。他们可以吗?有没有可能发生这种情况的情况?
【问题讨论】:
标签: jpa toplink-essentials persist