有两表:
   表一 t1
               t1_id        name
                 1         一
                 2         二
                 3         三
   
   表二 t2        
               t2_id        t1_id       t2_order
                 1            1            1
                 2            1            2 
                 3            2            3
                 4            2            4 
                 5            3            5 
                 6            3            6   表一和表二是一对多的关系,通过t1_id关联
   现在要做的是查询表一的数据, 并让结果按照关联的表二中t2_order进行降序排序
   
   用普通的sql写是这样的:   SELECT t.*,(SELECT MAX(t2_order) FROM t2 WHERE t1_id = t.t1_id) AS t_order FROM t1 t ORDER BY t_order desc
   
   可要是用Hibernate该怎么写啊? 我都试了好多种写法了,都不行,Hibernate不会连这么简单sql都搞不定吧?
   
    哪位高手指教指教?
  

解决方案 »

  1.   

    1.one-to-many
     <set/>
     中不是有个属性 order-by="要排序的列名" 吗?2.hql(你试试)
      from t1 where .... order by t1.t2.t2_order
      

  2.   

    SELECT t,(SELECT MAX(t2_order) FROM t2 WHERE t1_id = t.t1_id) AS t_order FROM t1 t ORDER BY t_order desc把t.* 改成 t  hibernate都是对象查询  还有你model建了没
      

  3.   

    楼主是想用HQL? 直接执行SQL不是更简单 自己封装下结果集就好了
      

  4.   

    楼上的兄弟, 是因为以前写的一个超复杂的hsql里面要实现这个子查询, 要改就全都改, 太麻烦了。