表A有字段a_id,b_id, c_id, a_display
表B有字段b_id ...
表B有字段c_id ...select * from a, b, c where a.b_id = b.b_id and a.c_id = c.c_id order by a_display
我在plsql中可以通过
我用的hibernate 3.0 ,我把dao的代码帖出来
Query query = session.createQuery(hql);
java.util.List list = query.setCacheable(true).list();
上面这句会报错 "不是SELECTed表达"
我在plsql中可以通过select * from a, b, c where a.b_id = b.b_id and a.c_id = c.c_id order by a_display

解决方案 »

  1.   

    select * from a, b, c where a.b_id = b.b_id and a.c_id = c.c_id order by a.a_display
      

  2.   

    我的这句Query query = session.createQuery(hql);是执行了的
    而且我还对它进行了分页处理
    但后面的java.util.List list = query.setCacheable(true).list();
    引起的错误。
      

  3.   

    我今天也遇见这样的问题,pl/sql中可以通过,到jsp就出错了,在网上找到的答案.在SELECT中未出现的列名也可用于ORDER BY 子句中,主要TABLE中有就行,但如果SELECT子句中出现了DISTINCT关键字,则只能用出现过的列名,而且如果SELECT子句中使用了任何运算符,在ORDER BY 子句中必须保持和SELECT子句中表达式完全一致,否则出现ORA-01791 ERROR
      

  4.   

    letnew() 
    有点像,
    我order by后面有三个,而且都是select中未出现的
    我吃完饭试试
      

  5.   

    letnew() 
    果如你所说
    太有才了