我们正在使用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
}
Run Code Online (Sandbox Code Playgroud)
所以,基本上这个updateUser方法应该更新给定id的用户名.但是这个方法的作者忘了调用em.persist(u);
而最奇怪的是它运作良好.怎么会这样?我100%肯定,如果不调用em.persist()或em.merge(),就无法将更改保存到数据库中.他们可以吗?有可能发生这种情况吗?
谢谢