一尘不染

save和saveOrUpdate方法休眠之间的区别

hibernate

通常我已经阅读过save()方法为对象生成新标识符,并且仅触发 INSERT 并保存它,它不会更新它,而saveOrUpdate()方法可能会
插入UPDATE 记录。

但是根据我的经验,在这里我可以通过示例代码更好地进行解释,

假设有 A类 ,我觉得从记录 表A

A a = getHibernateTemplate.findById(7);

所以现在我有了一个持久对象,

现在,我试图通过简单地修改某些字段来使用save方法保存记录,

现在我开除

getHibernateTemplate.save(a);

因此,它只是 更新现有记录 ,但是据我所知 它应该创建新记录

我对certian的事情可能是错的,有人可以解决吗?


阅读 300

收藏
2020-06-20

共1个答案

一尘不染

保存methodobject存入数据库。它将坚持给定的瞬时实例,首先分配一个生成的标识符。它returns是创建的实体的 ID

鉴于,

SaveOrUpdate()

save()update()基于标识符的调用是否存在。例如,如果标识符存在,update()将被调用,否则save()将被调用。

还有更多类似 persist(),merge(),saveOrUpdateCopy()之类的东西 。几乎全部相同,但功能和可用性略有不同。

2020-06-20