有人知道Hibernate如何在调用session.saveOrUpdate()
时知道是在数据库中插入还是更新一个值吗?
到目前为止,我只确定它不依赖于缓存中的信息,数据库中实体的存在由主键决定.
有人知道Hibernate如何在调用session.saveOrUpdate()
时知道是在数据库中插入还是更新一个值吗?
到目前为止,我只确定它不依赖于缓存中的信息,数据库中实体的存在由主键决定.
当您使用.saveOrUpdate()
时,Hibernate将判断对象是否是瞬态的(它没有标识符属性),如果是,它将通过生成标识符并将其分配给会话使其持久化.如果对象已经有标识符,它将执行.update()
.
从documentation人中:
saveOrUpdate()执行以下操作: