有谁知道Hibernate如何知道在session.saveOrUpdate()调用时是要插入还是要更新数据库中的值?
session.saveOrUpdate()
到目前为止,我仅确定它不依赖于高速缓存中的信息,并且数据库中实体的存在由主键确定。
当您使用.saveOrUpdate()Hibernate时,将检查对象是否为瞬态对象(它没有标识符属性),如果是这样,它将通过生成标识符并将其分配给会话来使其持久化。如果对象已经具有标识符,它将执行.update()。
.saveOrUpdate()
.update()
从文档中:
saveOrUpdate()执行以下操作: