方法一:一般的,关联关系都是使用 Set 类型的对象,但是,我们如果要求是有序的,我们可以使用 List 类型的对象。那么对应的映射文件为,例如:    <list name="student" 
          cascade="all"
          lazy="false">
          <key column="depid"/>
          <index column="age"/>
          <one-to-many class="eqzhou.test.Student"/>
    </list>
如果使用这个方法,需要加额外的一个字段,作为 index
方法二: <one-to-many>中直接加一个 sort属性,指定根据那些属性来排序,

解决方案 »

  1.   

    我的pojo结构
    在product有
    <set
            name="members"
            lazy="true"
            inverse="true"
           cascade="none"
        >
            <meta attribute="field-description">
               @hibernate.set
                lazy="true"
                inverse="true"
                cascade="none"           @hibernate.collection-key
                column="PRODUCT_ID"           @hibernate.collection-one-to-many
                class="Member"
            </meta>
            <key>
                <column name="PRODUCT_ID" />
            </key>        <one-to-many
                class="Member"
            />
        </set>
    查询:
    crit.createAlias("members", "member");
    crit.add(Expression.eq("member.category", category));
    crit.addOrder(Order.asc("member.sequenceNum"));我要实现的是通过查询按照sequenceNum排序
      

  2.   

    我需要实现的sql如下:
    select m.sequence_num,p.* from product p, member m
    where p.product_id=m.product_id and m.category_id='A'
    order by m.sequence_num