首先你要知道,hibernate的update操作的运行机理:
hibernate的update是怎么样自动的进行update操作的呢?
首先hibernate先会执行一个select操作,到数据库中查找
当前要update操作的对象的主键是否存在,类似于:
select id from table where id=XXX
如果查找到了改id,就说明该对象是一个持久化对象,
如果该对像的某些属性变化了,hibernate就会自动的执行update操作,
同步数据库中的该对象。
如果hibernate没有查找到该id,就说明该对象是一个游离的对象,
hibernate就会执行insert操作。
根据这些,就可以找找是不是要update的对象的id在数据库中不存在,
或是更改的该对象的id。这些都是执行insert而不是update
您好,hibernate中在使用update时,只是更改了缓存中的对应数据。需要调用flush进行同步更新至数据库中。至于出现的原因,可能是你在某一个配置文件中写了一个相关的参数。 如果 所有配置都没问题。就是update 语句 debug 过去 时候没任何反映。 不报错的话。 你这样做。在update 之前,先做一个 查询。然后在做个修改 我记得 以前也遇见过。然后就只能这么处理了。
用户登录
还没有账号?立即注册
用户注册
投稿取消
文章分类: |
|
还能输入300字
上传中....