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

criteria 查询排序问题。java Hibernate 懂的来

--------------------编程问答--------------------  不是有这个方法crit.addOrder(Order.desc("id")); 吗 --------------------编程问答-------------------- 是的但是 ,如何
crit.addOrder(Order.desc(tourComment.count());
并且限定条件为  t.id= tourComment.id 呢?大神帮忙。 --------------------编程问答-------------------- 就是不懂如何加的这个条件限定。和查询出来的tourComment.count()的数的方法。 --------------------编程问答-------------------- 就是这个如何用类来实现呢?
select count(*)"
+ " from "
+  "TOUR_COMMENT tourComment where tourComment.tour_id = t.id
大神在哪里? --------------------编程问答-------------------- 人家还有crit.add(Restrictions.eq("xx", 00)); 组合一下嘛 --------------------编程问答-------------------- 嗯 但是这个count数应该如何得到呢?
select count(*) --------------------编程问答-------------------- Hibernate里有Projections。Projections.rowCount() --------------------编程问答-------------------- 楼上的,能说完整一些不,给个完全的代码 --------------------编程问答-------------------- 嗯 是啊,有点不太会用
就是这个如何用类来实现呢?
select count(*)"
+ " from "
+  "TOUR_COMMENT tourComment where tourComment.tour_id = t.id
完全的该怎么写呢?谢谢 --------------------编程问答-------------------- 求救。纠结一天了 --------------------编程问答-------------------- 因为是2个表所以该如何关联呢? --------------------编程问答-------------------- 把表结构说出来 --------------------编程问答-------------------- 表结构就是:
String criteria += " order by (select count(*)"
+ " from "
+  "TOUR_COMMENT tourComment where tourComment.tour_id = t.id) asc"
其中t.id是tourComment.tour_id的外键。
是一对多关系 --------------------编程问答-------------------- List results = session.createCriteria(Txxxx.class)
    .setProjection( Projections.rowCount() )
    .add( Restrictions.eq("tour_id", t.id) )
    .list();

引用 9 楼 huaishuming 的回复:
嗯 是啊,有点不太会用
就是这个如何用类来实现呢?
select count(*)"
+ " from "
+  "TOUR_COMMENT tourComment where tourComment.tour_id = t.id
完全的该怎么写呢?谢谢


仅供参考

List results = session.createCriteria(Txxxx.class)
    .setProjection( Projections.rowCount() )
    .add( Restrictions.eq("tour_id", t.id) )
    .list(); --------------------编程问答-------------------- 仅供参考

List results = session.createCriteria(Txxxx.class)
    .setProjection( Projections.rowCount() )
    .add( Restrictions.eq("tour_id", t.id) )
    .list(); 
 
这个t.id 
也要这样去 session.createCriteria(Txxxx.class)创建一个吗?
我不明白的就是他如何在add( Restrictions.eq("tour_id", t.id) 这里关联的,
即:ti.id 怎么定义。和在add( Restrictions.eq("tour_id", t.id)这里怎么写。 --------------------编程问答-------------------- 补充:
因为应该是2个类的
session.createCriteria(Txxxx.class)
这个应该是创建了一个,怎么去创建2个并用外键关联。
即完成这句话中的add( Restrictions.eq("tour_id", t.id)
t.id --------------------编程问答--------------------
引用 16 楼 huaishuming 的回复:
补充:
因为应该是2个类的
session.createCriteria(Txxxx.class)
这个应该是创建了一个,怎么去创建2个并用外键关联。
即完成这句话中的add( Restrictions.eq("tour_id", t.id)
t.id

假设有两个表 Club Team


select club.clubid, club.name, team.clubid, team.teamid, team.teamname
from Club club, Team team
where club.clubid=team.clubid and
club.name='Arsenal'
and team.teamname='Team A'; 


等价于


Criteria criteria = session.createCriteria(Club.class,"club")
    .createAlias("club.team","team")
    .add(Restrictions.eq("club.name", "Arsenal"))
    .add(Restrictions.eq("team.teamname", "Team A"));
    List list = criteria.list();
补充:Java ,  Web 开发
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,