我在model中有
两个实体:
电影Movie和广告Ad
一个movie对应多个ad
现在我在movie中用Set<Ad> ads声明了ad,在xml配置文件中
用set标签配置好了这时候问题出现了,我的ad必须是按照顺序排列在页面上的,但是现在我取出来的ad都是无序的
有什么办法最好的解决这个问题吗?如果用List配置的话,应该如何配置呢?我找了好多资料都不成功,务必请高手指教!当然,最好能在使用set的情况下解决排序问题.....因为set用的非常习惯了。谢谢!

解决方案 »

  1.   

    用set一样可以排序
    如下配置即可
    在set 里面有个order by 属性,你想让它按哪个排序,就这么配置。如
    <set     order by = "需要排序的字段名称">
      

  2.   

    HQL同样也可以,只要在HQL语句后边加order by "需要排序的字段名称"就可以了~~~
      

  3.   

    回复楼上两位:
    我存进去的时候可以按照order by顺序,但是现在的问题是取出来的是set啊,仍然是没有顺序啊
      

  4.   

    晕~~~
    hibernate的查询方法返回的是list,和你两个实体里边的set没关系~~
      

  5.   

    <set name="inrooms" order-by=" id desc " inverse="true" lazy="false" cascade="all">
                <key>
                    <column name="inroom_account_id" not-null="true" />
                </key>
                <one-to-many class="com.nk.entity.Inroom" />
            </set>给分吧
      

  6.   

    虽然你使用set进行映射 按照id 排序了,但是你想一下 你取得数据的时候是排序好了,但是你还是会放入Set集合中的 ,这时候又是无序的了 所以 需要使用list集合映射
     <list name="ads" table="t_ad">
          <key column="movie_id"></key>
          <index column="ad_listindex" type="java.lang.Integer"></index>
          <one-to-many class="AD" />
     </list>楼主可以根据自己实际的对象模型 进行相应修改