关于HIBERNATE删除后查询出现了脏读的问题
我在用HIBERNATE对实体对象进行删除后:
如:
addao.makeTransient(ad);(这个类我封装了,用MYSQL查询表已经确认删除无误)
但在次进行对表的查询发现原来已经删除的纪录又出现了:
如:
query = session.getNamedQuery(namedquery);
遍历纪录集后被删除的纪录又出现了!
初步估计是于HIBERNATE的缓存有关系,好像是从session中调出数据时并没有从数据库里进行调用, **因为我在删除操作之前已经进行了一次查询操作**
麻烦大虾们帮我解决一下这个问题,这样的情况下该如何避免出现脏读?
------解决方案--------------------在查询前加上
getSession().clear();
就可以了。
这个问题在开始使用 hibernate 的时候最常见了。