用hibernate一对多取到的set集合,如何取到set里面的值 

解决方案 »

  1.   

    如下:
    比如Order类里有一个Item的Set集合(HashSet<Item> items)。这样当从数据库中查询出所有的Order实例出来时,第一个Order实例里就包含有一个Item的Set集合,迭代如下:
    List<Order> list='从数据库中查询出来的Order集合';
    for(Order order:list){
       //调用order的getter方法获得Item的Set集合
       Set<Item> items=order.getItems();
       //迭代Items
       Iterator<Item> iter=items.iterator();
       while(iter.hasNext()){
         //获得Item对象,即Set里面的每一个值
         Item item=iter.next();
         //现在可以做利用Item做事情
          ........
       }
    }
      

  2.   

    注意:在使用hibernate处理一对多的set集合时,可能会出现延迟加载异常(LazyInitialationException),一定要处理这个问题的。
      

  3.   

    取 一的时候,再GET一下你的SET的SIZE就OK 了。
    也可以通过配置文件,一次查询出来
      

  4.   

    get一下你的set 然后 直接转到po或者vo 就可以取值了 
      

  5.   

    大 哥,你有没有msn呢,我加你好吧?
      

  6.   

     TdQuestion  question =(TdQuestion)lista1.get(k);
           int Questionid =question.getQuestionid();
           
                 java.util.Iterator<TdAnswer> it = question.getTdAnswers().iterator();
                  while(it.hasNext())
             {
                
            从这里面如何一项一项的取得,然后把取到的值,赋给一个常量
               
              }