hibernate修改数据库后的不能在本地更新的问题!!
在hibernate中用以下语句修改纪录:
|
提交数据库后,在数据库中查,纪录确实被修改了,但是用以下代码查看,发现还是原来的数据!请问大家怎样解决?
|
在hibernate中用以下语句修改纪录:
|
|
你不会是没有提交吧?
> 你不会是没有提交吧?
我的提交是在外边写的,肯定提交了,因为数据库中已经更新了!只是hibernate提取的仍然是原来的数据!
在取出数据后加上一句refresh()后显示正确的数据了。但是这样是否正常?
|
我用hibernate作更新没有这样的问题啊。
我猜测是不是你的update和find在同一个session中的原因,在update语句后加上session.flush(); 试试。我只是猜测而以,说得不对请别见笑。建议你打开sql语句看看是不是正常。
不知道你是否看参考手册了,那里它无数遍的说了update,refresh的事情。
持久对象并不是当你提交后就消失的,它还是存在的。即使你关闭程序,消失的也只是持久类。
如果你的两段代码用的都是同一个session,而你又没有用transaction,就有可能出现你说的那种情况,这是你自己程序写的不对。另外如果你使用了JCS,也有可能读出旧数据。
BTW,你那个session.update(branch)是多余的。