求教 hibernate 执行普通sql的问题

J2EE 码拜 10年前 (2015-04-22) 1365次浏览 0个评论

到网上看到一些方法,都是用下面这个方法:
this.getHibernateTemplate().executeFind(new HibernateCallback<Object>() {
@Override
public Object doInHibernate(Session session)throws HibernateException, SQLException {
SQLQuery query = session.createSQLQuery(   sql   );
return query.list();
}
});
但是sql(标了红色)这个参数只能是final类型的,而 我上面需要根据不同条件这个sql进行拼装, 怎么破? 

有没有其他的方法,可以执行普通sql, 参数还不是final的? 

求教 hibernate 执行普通sql的问题
40分
用StringBuilder拼装吧。  最后final String sql = sb.toString(); 传到匿名类里面就行了。 
如果上面是字符串+=这样的话,只能另外定义一个final String fSql = sql; 这样把fSql传进去
求教 hibernate 执行普通sql的问题
 谢谢楼上的回复,原来用的是mybatis,sql想怎么写就怎么写。现在的项目用的是hibernate,要写一些复杂的sql(case when 语句之类的),hibernate不知道怎么弄,一时烧坏了脑袋,纠结这里咋还有final的限制呢,忘了变通。 看来写代码也要相当冷静啊。。

CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明求教 hibernate 执行普通sql的问题
喜欢 (0)
[1034331897@qq.com]
分享 (0)

文章评论已关闭!