您的位置:首页 > 数据库

sql 在sqlplus下能正确执行,但是hibernate 原生sql执行报列名无效错误

2013-08-17 11:21 435 查看
这是我原来的sql:

String sql="select s.* from(select t.*,rownum n from (select id,msg_Title,msg_Sdate from Sys_Msg where status=? and msg_sdate<sysdate and msg_edate>sysdate order by sort_Num,msg_Sdate desc) t) s where s.n in (:num)";


在sqlplus下能争取执行,但是

Query query=this.getSession().createSQLQuery(sql).addEntity(SysMsg.class);
query.setParameter(0, Status.SURE.value());
query.setParameterList("num", nums); query.list();

报SQL Error: 17006, SQLState: null 列名无效错误。

后修改sql为:

select s.* from(select t.*,rownum n from (select * from Sys_Msg where status=? and msg_sdate<sysdate and msg_edate>sysdate order by sort_Num,msg_Sdate desc) t) s where s.n in (:num)


把最里层的sql中指定的字段,改为“*”,问题得以解决。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: