读书人

session.createSQLQuery(sql).list()有

发布时间: 2012-02-28 13:06:35 作者: rapoo

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)。

试试吧。

读书人网 >J2EE开发

热点推荐