通常我已经阅读过save()方法为对象生成新标识符,并且仅触发 INSERT 并保存它,它不会更新它,而saveOrUpdate()方法可能会 插入 或 UPDATE 记录。
但是根据我的经验,在这里我可以通过示例代码更好地进行解释,
假设有 A类 ,我觉得从记录 表A 的
A a = getHibernateTemplate.findById(7);
所以现在我有了一个持久对象,
现在,我试图通过简单地修改某些字段来使用save方法保存记录,
现在我开除
getHibernateTemplate.save(a);
因此,它只是 更新现有记录 ,但是据我所知 它应该创建新记录 。
我对certian的事情可能是错的,有人可以解决吗?
救
保存method将object存入数据库。它将坚持给定的瞬时实例,首先分配一个生成的标识符。它returns是创建的实体的 ID 。
method
object
returns
鉴于,
SaveOrUpdate()
save()或update()基于标识符的调用是否存在。例如,如果标识符存在,update()将被调用,否则save()将被调用。
save()
update()
还有更多类似 persist(),merge(),saveOrUpdateCopy()之类的东西 。几乎全部相同,但功能和可用性略有不同。