session.createSQLQuery(sql).list()问题,很怪异...
我有一个String sql存放拼好的SQL语句
List list = null;
Session session = this.getHibernateTemplate().getSessionFactory().getCurrentSession();
获得session后,执行到这一句
list = session.createSQLQuery(sql).list();
程序集没有动静了,单步dubug到这里,程序就不走了
这是什么原因?
------解决方案--------------------session 为空或是不能获得。
------解决方案--------------------贴出报的错误来猜能分析的。。
关注ing
------解决方案--------------------sql语句的问题吧 贴出来看看吧
------解决方案--------------------把你sql语句贴出来看看!
------解决方案--------------------createSQLQuery(sql) 会不会是 你的参数传的是HQL 不是SQL
------解决方案--------------------敢问楼主 HQL不是很好用吗
怎么用上SQL了?
何解?
------解决方案--------------------HQL有些做复杂一些的业务时就不能够满足,所以用SQL!
LZ把SQL贴出来看看
------解决方案--------------------楼上能举个例子吗?
空口无凭
------解决方案--------------------楼主尝试下执行查询语句前,清空下session缓存,有可能你查询的某个对象处于持久化状态或流离状态。
------解决方案--------------------顶...我新手。呵呵..
------解决方案--------------------Session session = this.getHibernateTemplate().getSessionFactory().getCurrentSession();
这个东西不是很好。。hibernate模板的拿到session,然后执行sql会导致多次查询之后,就查不出来了
你的sql没有问题。原因估计是你每次都执行这段话的时候都会创建一个session而这个session是不会被关掉的,因为你没关。所以多次查询就这样了。不动了。具体原因不知。
好的办法是用HQL不会出现这个问题。HQL不支持的语句,可以用JDBC模板。就是spring的那个JdbcTemplate 然后.getSession().query(XXXX)。
试试吧。