目前使用hibernate技术开发项目过程中遇到一个问题,通过数据操作类的方法得到主表reportId 对应的从表信息在LIST中 然后我循环list 信息放在set 中,然后取得set里面的信息时没有按list中的顺序展现。
想请教各位,是否一对多关系的实体类中一定要用set来存放对象呢?可不可以用list 
如果可以的话 那hbm.xml 和bean 该如何配置?
如果不可以怎么实现 我的set里面存放的信息是排序的呢?hibernate的实体类配置文件中的主表中配置明细如下 如 A.hbm.xml
     <set name="details" inverse="false" cascade="all"  lazy="false" fetch="select" >  
            <key>  
               <column name="reportId" length="50" not-null="true"/>  
           </key>  
           <one-to-many class="com.septwolves.emp.bean.Adetail" />  
        </set>  
A.java如下
   private Set<Adetail> details=new HashSet(0);
 hibernate一对多

解决方案 »

  1.   

    默认都是用的set至于能不能用list我就不知道了··
    排序的话是可以设置的吧
    我用注解的可以设置 
    配置文件也行吧
    @OrderBy(value = "opNumber ASC")这个是注解的
    配置文件应该是在set标签加上order-by=“排序的列”
      

  2.   

    xml注释是用set,但pojo类中可以是list啊
      

  3.   

    xml配置文件中配置order-by=“排序的列” 
      

  4.   

    谢谢 楼上各位的回答,可能是我问题描述的不够清楚;我的数据的由前台的json字符串转换为list<Adetail> 的
    但hibernate的实体类A.java的detail对象又是放在set中  所以我只能循环list 然后把对象放在set中
    set数据就无顺序了。
      

  5.   

    TreeSet 是有序的,但是不能用在hibernate对应得实体类中;及在A.java 中  private TreeSet<Adetail> details=new TreeSet();这样写会报错说转换问题
    可能是因为A.hbm.xml中使用的是<set>标签的事 ,所以想请教A.hbm.xml中除了<set>还能不能用其他标签来对于实体类中的集合呢?如果可以 该如何写
      

  6.   

    Set想有序用TreeSet,当然可以存在List里面啊。
    xml的配置有点麻烦,不如看看注解或者自己写方法转换存入不行吗?
      

  7.   

    没办法,只能用了一个很土的方法解决了,本人在 AAdetail对象中添加了一个属性 用来存序号,这个序号就
    是循环list时候的i;将i值赋值给AAdetail的序号这个属性中,然后存到数据库,在读取的时候按序号排列展示。