就这样一条sql,在Navicat中能够正常执行。但是通过Hibernate查询就报错,说“NAME”列不存在!!
List<Object[]> obj = this.getQcyOrderInfoDAO().executeSQLQuery(" SELECT smw.ID AS smwID,smw.`NAME` AS '窗口', CASE WHEN smsi.`WEEK`=1 then '星期一' WHEN smsi.`WEEK`=2 then '星期二' WHEN smsi.`WEEK`=3 then '星期三' WHEN smsi.`WEEK`=4 then '星期四' WHEN smsi.`WEEK`=5 then '星期五' WHEN smsi.`WEEK`=6 then '星期六' WHEN smsi.`WEEK`=7 then '星期日' END as '星期', smms3.ID, smms3.`NAME` '主餐别', sms.id AS smsID, sms.`NAME` AS '次餐别', sms.SEQUENCE AS smsSequence, smat.`NAME` AS '属性' , smat.ID AS smatID , sm.`NAME` AS '菜名' from smart_menu_schedule_item AS smsi LEFT JOIN smart_menu as sm ON sm.ID = smsi.SMART_MENU_ID LEFT JOIN smart_menu_attribute smat on smat.ID = smsi.MENU_ATTRIBUTE_ID LEFT JOIN smart_menu_meal_sort sms on sms.id = smsi.SORT_ID LEFT JOIN smart_menu_window smw on smw.ID = smsi.WINDOW_ID LEFT JOIN smart_menu_meal_sort as smms2 ON sms.id= smms2.ID LEFT JOIN smart_menu_meal_sort as smms3 ON smms3.ID=smms2.HEADER_ID where smsi.HEADER_ID = 261 ");
dao层的代码:
/** * <b>基础DAO支持</b><br/> * <b>说明:</b>所有的DAO层类,都要继承这个DAO * */ @Repository public class CommonDAO extends HibernateDaoSupport { private Session session() { return getSession(); } public SQLQuery createSQLQuery(final String sql) { return this.session().createSQLQuery(sql); } }错误信息:
WARN - [org.hibernate.util.JDBCExceptionReporter:line 77]SQL Error: 0, SQLState: S0022 ERROR - [org.hibernate.util.JDBCExceptionReporter:line 78]Column 'NAME' not found. ERROR - [com.hestia.mosa.qcy.controller.QcyOrderInfoController:line 109]could not execute query ERROR - [com.hestia.mosa.qcy.controller.QcyOrderInfoController:line 116]org.hibernate.exception.SQLGrammarException: could not execute query程序中有不通过Hibernate执行sql的地方,就不会报这个错误。
请高手指点啊,感谢啦……
Column'NAME'notfound.大哥,我都说了,sql是没有问题的!!通过Hibernate查询就出错!!<spanstyle="font-family:Consolas,'BitstreamVeraSansMono','CourierNew',Courier,monospace;line-height:14.65625px;background-color:#F8F8F8;">为什么smw.NAME
要加单引号?NavicatPremium工具中使用“.”后自动带出的,应该是“NAME”和“WEEK”都是关键字,所以工具自动加上的。直接用双引号看看。回复<aclass='referer'target='_blank'>@huan:大哥你加AS不觉得多余啊…………回复<aclass='referer'target='_blank'>@pengcheng_1024:另外你的smms3.NAME
'主餐别',中间少了AS,真不知道你是怎么跑起来的。。。回复<aclass='referer'target='_blank'>@pengcheng_1024:别名不要加任何引号,关键字列名加双引号。问题不出在这个你讲什么加双引号啊??别名吗?<imgsrc="http://www.oschina.net/js/ke/plugins/emoticons/images/17.gif"alt=""/>哎!!都说这个sql可以执行的,为什么通过Hibernate就不行啦!!是我问的含糊,不好意思啊!回复<aclass='referer'target='_blank'>@pengcheng_1024:报错楞个明显,你哈要我说个啥子?你这是什么情况啊
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。