当前位置:编程学习 > JAVA >>

ORDER BY id DESC 问题

这是我后台取值的代码:
public class NewsDate {
public List<News> NewscopyQuery(){
Session session = HibernateSessionFactory.getSession();
session.beginTransaction();
List<News> list = new ArrayList<News>();
try {
Query query = session.createQuery("from News ORDER BY id DESC where guding = 1");
list = query.list();
session.getTransaction().commit();

} catch (Exception e) {
// TODO: handle exception
e.printStackTrace();
session.getTransaction().commit();
}finally{
session.close();
}
return list;
}
public List<News> NewscopyQuery1(){
Session session = HibernateSessionFactory.getSession();
session.beginTransaction();
List<News> list = new ArrayList<News>();
try {
Query query = session.createQuery("from News ORDER BY id DESC where guding = 2");
list = query.list();
session.getTransaction().commit();

} catch (Exception e) {
// TODO: handle exception
e.printStackTrace();
session.getTransaction().commit();
}finally{
session.close();
}
return list;
}

这样会出现一个问题!
CSDN发图发不了我简述一下。
问题就是:("from News ORDER BY id DESC where guding = 1");
完全被忽略
异常 Java --------------------编程问答-------------------- 1.News 里有没有guding字段?
2.guding字段是否是int类型? --------------------编程问答--------------------
这里是获取数据的页面! --------------------编程问答-------------------- ORDER BY id DESC得写在where后面吧 --------------------编程问答-------------------- from News  where guding = 1 ORDER BY id DESC莫得要这样? --------------------编程问答--------------------
引用 1 楼 fangmingshijie 的回复:
1.News 里有没有guding字段?
2.guding字段是否是int类型?

一定肯定是有。 这个我可以保证!
没有加ORDER BY id DESC  的时候是完全正常的! --------------------编程问答--------------------
引用 2 楼 cw954684555 的回复:

这里是获取数据的页面!

谢谢 放到后面就正常了 如果能给我解释一下原理就更好了! --------------------编程问答--------------------
引用 3 楼 fudongrifdr 的回复:
ORDER BY id DESC得写在where后面吧

谢谢 放到后面就正常了 如果能给我解释一下原理就更好了!  --------------------编程问答-------------------- 。。。。。。

SQL的解析顺序是
 (1).FROM 子句, 组装来自不同数据源的数据
 (2).WHERE 子句, 基于指定的条件对记录进行筛选
 (3).GROUP BY 子句, 将数据划分为多个分组
 (4).使用聚合函数进行计算
 (5).使用 HAVING 子句筛选分组
 (6).计算所有的表达式
 (7).使用 ORDER BY 对结果集进行排序

剩下的你就参照 Oracle 手册上的Select 写法吧,人家规定好的语法树,就按照人家的先后顺序写吧。 --------------------编程问答-------------------- 这就是hibernate造就的新一代程序员。
你要是不用数据库也就罢了,用数据库连个sql都写不明白,还要原理,原理就是人家编写sql引擎时候就这么规定的。 --------------------编程问答--------------------
引用 7 楼 cw954684555 的回复:
Quote: 引用 3 楼 fudongrifdr 的回复:

ORDER BY id DESC得写在where后面吧

谢谢 放到后面就正常了 如果能给我解释一下原理就更好了! 

sql语法规定。hibernate竟然不报错 --------------------编程问答--------------------
引用 10 楼 fudongrifdr 的回复:
Quote: 引用 7 楼 cw954684555 的回复:

Quote: 引用 3 楼 fudongrifdr 的回复:

ORDER BY id DESC得写在where后面吧

谢谢 放到后面就正常了 如果能给我解释一下原理就更好了! 

sql语法规定。hibernate竟然不报错

所以我也不知道什么错误。 搞了半天了 谢谢你! --------------------编程问答-------------------- 目测是SQL写错了吧?没见过where在最后面的,按照SQL解析来说貌似order by 要放在最后面,where要作为第一位的吧?
补充:Java ,  Web 开发
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,