hibernate的saveOrupdate函数不会更新versionID

御风林海 发布于 2013/11/07 14:54
阅读 812
收藏 0
      公司的项目中有一个更新函数,原来是用了session.saveOrUpdate(fo) 这样更新数据库记录,我在数据库(oracle11g)里面加了一个版本号字段 versionID   类型是 TIMESTAMP(6),实体里面对应有一个 Date类型的  versionID 属性,但使用saveOrUpate函数,更新记录后  ,versionID   不更新,改用update()后,却能更新versionID   这是为什么呢?请各位大牛帮忙。
加载中
1
DW_GYT
DW_GYT
如果该fo对象已经在session中持久化了,在同一个session中执行saveOrUpdate将不会做任何事。 你需要new一个新的session来执行 saveOrUpdate方法
0
御风林海
御风林海

引用来自“拈花微笑”的答案

如果该fo对象已经在session中持久化了,在同一个session中执行saveOrUpdate将不会做任何事。 你需要new一个新的session来执行 saveOrUpdate方法
在项目中,我可以通过saveOrUpdate方法更新其他字段的值,就是versionID没变化(当然,versionID并不需要我手工为他赋值)
0
寒情漠漠
寒情漠漠

引用来自“御风林海”的答案

引用来自“拈花微笑”的答案

如果该fo对象已经在session中持久化了,在同一个session中执行saveOrUpdate将不会做任何事。 你需要new一个新的session来执行 saveOrUpdate方法
在项目中,我可以通过saveOrUpdate方法更新其他字段的值,就是versionID没变化(当然,versionID并不需要我手工为他赋值)
hibernate可以指定更新部分字段 可以指定一下试试
返回顶部
顶部