hibernate缓存

来源:百度知道 编辑:UC知道 时间:2024/09/21 09:15:19
例如,将一个人的记录删除,删除成功,然后刷新,就报出No row with the given identifier exists:,实际上,这个人确实在数据库中没有了,但是hibernate还是会继续找这个ID,应该怎么办.....session.flush(),session.claer(),都试过了,没有用.....
我是用query查询 的list,而不是单挑记录,应该怎么办
页面上当然没有查询代码了,只是刷新页面的时候调用了struts中的,do?showlist方法,又会再查询一次了,而查询的是缓存中的ID,ID在数据库中却找不到了,不知道hibernate怎么回事,没有搞明白

楼主用了opensessioninview机制吗,
刷新出现这个错误,莫非你页面还有查询数据库的代码??!
一般view,control,Po三层分离,用onpensessioninview不会出现这种问题
_____________________________________________
hibernate二级缓存没有用吗,你删除怎么删的是
先查询到某个po然后删的吧
Po po=dao.findby(id);
dao.delete(po);

或者用session直接删除po吧,那么应该不会有错,
然后你没有用spring的hibernateTempter话,应该用一个
Transcation ta=session.beginTranscation();
Po po=dao.findby(id);
dao.delete(po);
ta.commit();
事务把删除事务包装起来,再不行楼主
do?showlist中的代码贴出来或者发给我我可以帮你看看

自己重新写一个删除的方法.
public boolean del(int id){

}

你是用的load方法找的吗?
如果是load方法,你改成get吧

最简单的就是弄个IF判断一下.