67,515
社区成员
发帖
与我相关
我的任务
分享
用外连接查询时,抛出以下错误,但我在SQL2005中查询是没有问题的,有结果的,怎么一用到HQL语句,就这样呢?
语句是:
String hql = "selectGoods_firstType.fType_name,Goods_scondsType.sType_name,
Goods_info.goods_name,Goods_save.save_num,Goods_save.save_time,Goods_save.save_addNum,
Goods_save.save_addTime from Goods_save
left join Goods_info on Goods_save.Goods_id = Goods_info.Goods_id
left join Goods_firstType on Goods_info.fType_id = Goods_firstType.fType_id
left join Goods_scondsType on Goods_info.sType_id = Goods_scondsType.sType_id
where Goods_save.save_num < (select alert_num from goods_saveinfo)";
我用getHibernateTemplate().find(hql);
抛出以下异常:
2009-12-06 19:31:59,328 ERROR [org.hibernate.hql.PARSER] - line 1:238: unexpected token: on
2009-12-06 19:31:59,328 ERROR [org.hibernate.hql.PARSER] - line 1:309: unexpected token: on
2009-12-06 19:31:59,328 ERROR [org.hibernate.hql.PARSER] - line 1:386: unexpected token: on
2009-12-6 19:31:59 org.apache.catalina.core.StandardWrapperValve invoke
严重: Servlet.service() for servlet default threw exception
org.hibernate.hql.ast.QuerySyntaxException: unexpected token: on near line 1, column 238 [select Goods_firstType.fType_name,Goods_scondsType.sType_name,Goods_info.goods_name,Goods_save.save_num,Goods_save.save_time,Goods_save.save_addNum,Goods_save.save_addTime from shengye.IEshopping.sky.bean.Goods_save left join Goods_info on Goods_save.Goods_id = Goods_info.Goods_id left join Goods_firstType on Goods_info.fType_id = Goods_firstType.fType_id left join Goods_scondsType on Goods_info.sType_id = Goods_scondsType.sType_id where Goods_save.save_num < (select alert_num from goods_saveinfo)]
郁闷,说是left join on 附近,但我找了半天,未果,但同样的语句在SQL2005可以执行啊? 肯请各位大哥大姐们帮帮忙???
this.getHibernateTemplate().find("select gft.fType_name,gst.sType_name," +
"gi.Goods_name,gs.save_num,gs.save_time," +
"gs.save_addNum,gs.save_addTime from Goods_save gs "+
"left join gs.goods_infos gi "+
"left join gi.goods_ftype gft "+
"left join gi.goods_stype gst "+
"where gs.save_num < (select gsi.alert_num from Goods_saveInfo gsi)");
obj = (Object[])list1.get(i);
obj[0]..就是你要的字段。。。
select Goods_firstType.fType_name,Goods_scondsType.sType_name,
Goods_info.goods_name,Goods_save.save_num,Goods_save.save_time,
Goods_save.save_addNum,Goods_save.save_addTime from Goods_save
left join Goods_info on Goods_save.Goods_id = Goods_info.Goods_id
left join Goods_firstType on Goods_info.fType_id = Goods_firstType.fType_id
left join Goods_scondsType on Goods_info.sType_id = Goods_scondsType.sType_id
where Goods_save.save_num < (select alert_num from goods_saveinfo)