当前位置: 代码迷 >> J2EE >> hibernate查询不出结果,sql已打印,
  详细解决方案

hibernate查询不出结果,sql已打印,

热度:89   发布时间:2016-04-17 23:36:05.0
hibernate查询不出结果,sql已打印,请指教.
控制台中已打印查询sql,抓出来到mysql客户端查询明明有纪录.数据时通过hibernate插进去的.
配置文件没有问题.

tomcat重启,查询就有结果了..

我的测试步骤是从客户端发两个请求到一个路径,Debug模式,
代码首行加断点.
第一个线程首先查询没有结果,正常因为没有数据,插入一条新的纪录.
第二个线程也是首先要查询,但此时却查不出结果,数据库中已经有了,查询的sql语句都打出来了..

请大神指教.


------解决思路----------------------
说了这么多,其实最重要的代码没有贴出来。
------解决思路----------------------
有没有可能:第二个线程执行的时候,第一个线程执行的插入操作还没有提交事务,所以你重启tomcat,就能查出来了。
------解决思路----------------------
线程,哪个执行在前,执行到哪一步了,你也不知道。所以上楼所说的有道理,当你查询时,你可能还没插入。
------解决思路----------------------
引用:
有没有可能:第二个线程执行的时候,第一个线程执行的插入操作还没有提交事务,所以你重启tomcat,就能查出来了。
同意这种观点
------解决思路----------------------
为什么要用2个线程?反正第二个线程必须等待第一个执行完才能执行,和一个线程效果一样。所以用一个线程不就行了,这样还不用考虑线程等待。
------解决思路----------------------
第一个线程加flag,执行完后commit,把flag=true,第二个线程先判断flag==true再查询
------解决思路----------------------
顺序执行的还要多线程完成干嘛。。
------解决思路----------------------
引用:
第一个线程加flag,执行完后commit,把flag=true,第二个线程先判断flag==true再查询

+1
------解决思路----------------------
引用:
第一个线程加flag,执行完后commit,把flag=true,第二个线程先判断flag==true再查询


+1
------解决思路----------------------
引用:
第一个线程加flag,执行完后commit,把flag=true,第二个线程先判断flag==true再查询
学习!
  相关解决方案