读书人

关于HIBERNATE删除后查询出现了脏读的

发布时间: 2012-03-09 16:54:57 作者: rapoo

关于HIBERNATE删除后查询出现了脏读的问题
我在用HIBERNATE对实体对象进行删除后:
如:
addao.makeTransient(ad);(这个类我封装了,用MYSQL查询表已经确认删除无误)
但在次进行对表的查询发现原来已经删除的纪录又出现了:
如:
query = session.getNamedQuery(namedquery);
遍历纪录集后被删除的纪录又出现了!

初步估计是于HIBERNATE的缓存有关系,好像是从session中调出数据时并没有从数据库里进行调用, **因为我在删除操作之前已经进行了一次查询操作**

麻烦大虾们帮我解决一下这个问题,这样的情况下该如何避免出现脏读?

[解决办法]
在查询前加上
getSession().clear();
就可以了。

这个问题在开始使用 hibernate 的时候最常见了。

读书人网 >Java Web开发

热点推荐