问题描述
各位大能,我有个hibernate问题一直没有解决,论坛新人,来寻求解决办法使用的是c/s开发,采用hibernate构建的数据持久层,mysql数据库当我用hibernate的saveorupdate方法修改数据后,点击页面的查询,修改后的值和原来的值相互跳动,不知道为什么?hibernateDao的保存方法:publicvoidsaveOrUpdate(Objecto){Sessionsession=HibernateUtils.openSession();Transactiontx=session.beginTransaction();try{session.saveOrUpdate(o);tx.commit();}catch(HibernateExceptione){tx.rollback();throwe;}finally{session.close();}}hibernateDao的查询方法:publicList<Object[]>sqlQueryToList(Stringsql){Sessionsession=HibernateUtils.openSession();try{List<Object[]>list=session.createSQLQuery(sql).list();returnlist;}catch(HibernateExceptione){throwe;}finally{session.close();}}通过saveorupdate进行的查询,然后通过sqlQueryToList方法进行的查询,得到list数据在打包到二维数组,给予Jtable的model....
解决方案
解决方案二:
为什么没人给我回复啊!!!!!大神在哪啊
解决方案三:
回复。。。大神
解决方案四:
没看明白到底是啥意思
解决方案五:
你到底要问啥???
解决方案六:
估计是我说的不清楚吧,就是我修改数据后代用saveorupdate方法保存,保存后,数据库确实变了,然后我点击我页面的查询,用的是sqlQueryToList方法,结果每次点击查询结果不一样,查询的结果为老的值和修改后的值互相跳动.....一直不知道为什么,求大咖给答案啊!!!!
解决方案七:
还有这样的问题
解决方案八:
楼上大哥什么意思啊,求解啊
解决方案九:
哥,我感觉这跟缓存或事务的隔离级别有关
解决方案十:
http://www.lohaloha.com/Player/Show/125417983
解决方案十一:
会来回跳?检查一下数据库里面的数据是什么。不知道你的o实体有没有id不知道你的sql是怎么写的。
解决方案十二:
引用9楼jack4238的回复:
http://www.lohaloha.com/Player/Show/125417983
给了我一个二级缓存的视频,但是哥们,我的没有用hibernate的二级缓存啊,我都没配置
解决方案十三:
引用10楼u012329872的回复:
会来回跳?检查一下数据库里面的数据是什么。不知道你的o实体有没有id不知道你的sql是怎么写的。
我的sql是:List<Object[]>list=dao.sqlQueryToList("SELECTr.id,r.name,t.regionTypeName,p.nameASpname,r.addressFROMregionASrINNERJOINregiontypeAStONr.regionType=t.idLEFTJOINregionASpONr.parentid=p.id");是用的原生sql写的
解决方案十四:
引用8楼u013992890的回复:
哥,我感觉这跟缓存或事务的隔离级别有关
哥,我也怀疑是缓存问题啊,可是sesion的缓存,我每次使用查询方法后后面都加了session.close(),还会有问题吗?真的是完全不知道啊,困扰我两个星期了找不到问题啊,求解
解决方案十五:
有点怀疑是你的session出现了线程安全问题,session是线程不安全的你将session修改成安全的试试用那个ThreadLocal