我知道这会Session.save()持续存在瞬态对象。而且我看到它也有saveOrUpdate(),还有persist()。
我想那save()相当于SQL INCLUDE,是吗?
如果我有一个已经存在于 DB 上的对象并且我拥有save()它,是否会包含另一行,是否会更新其字段,或者它会被忽略而没有任何反应?
save和之间的区别saveOrUpdate
save和saveOrUpdate方法之间的主要区别在于save生成一个新的标识符并INSERT记录到数据库中,而saveOrUpdate可以INSERT根据记录的存在或者更新。因此save将继续进行而不执行存在检查,另一方面saveOrUpdate将检查是否存在,如果记录存在,它将被更新,否则将插入新记录。
persist和的基本区别save
save1)和之间的第一个区别persist是它们的return类型。与save方法类似,persist也INSERT记录到数据库中,但返回类型persist是void,而返回类型save是Serializable object。
persist2)和之间的另一个区别save是这两种方法都使瞬态实例持久化。但是,persist方法不保证标识符值将立即分配给持久实例,分配可能发生在刷新时间。
save Persists an entity. Will assign an identifier if one doesn't exist.
If one does, it's essentially doing an update.
Returns the generated ID of the entity.
我的建议是,您确实需要阅读此内容以进一步进行。
据我所知,它是这样发生的:
save()只是在拯救你的实体persist()正在将您的实例修改为托管实体。这意味着如果您对其进行操作并且您的交易仍处于打开状态,那么它将在您调用时自动保存flush()(如果我没记错的话)merge()还有一个类似persist()的,但它返回一个新实例,而不是修改你的旧实例....saveOrUpdate()你可以在这里看到save() method insert the record into database . but saveorupdate() method check the pk if pk is found then it's update the data else insert the data into database .