hibernate查询数据问题?

来源:百度知道 编辑:UC知道 时间:2024/07/06 19:00:27
比如,现在数据库表中有sex这一列,初始值是18. 我在网页运行的时候已经把18改成20了,但是用hibernate的session.get();查询出来的值却还是18,这是为什么,是不是因为我session没有关的原因。(我session是一直没关的)

你猜对了!!!

就是因为session 没关的原因

因为session 是有缓存的,在你提交transation 和 关闭session 之前 你的持久化对象的数据是没同步到数据库的 还存在在缓存中

如果 你不想关闭session 而想让数据同步到数据库

请在 你修改对象后 依次执行session.flush(); 和 session.clear(); 方法

把18改成20的时候是不是没有调用修改方法,或者修改方法没有修改成功,例如事务没有提交等原因造成数据没有持久化到库,这都是有可能的,老弟在确认下。如果更改commit到库中了,session.get()是不是在更改之前get的这个都是值得注意的地方,哥们仔细检查下。如果问题依然hi我。

首先要指出来的是:你的命名不对。
应该是age.

你其它字段修改是否正确?
如果正确的话,先清理下缓存,再运行试下。、
如果还是一样的话,那就每操作一次都重启事务。

查看下数据库里原有值是否已经改变了, 如果改变了 清理下缓存

你修改没提交吧..
设置下 auto_commit 为true