当前位置:首页 » 软件行业

Hibernate left join fetch 关联查询问题

八月 3, 2007

 发表在: java



有一对关联表company,   product   ,二者是一对多的关系,hbm文件的设置如下:  
  ....  
  <!--   company   -->  
  <list   name="products"   inverse="true">  
                        <key   column="companyid"/>      
                        <index   column="productorder"   type="integer"/>      
                        <one-to-many   class="product"/>                                    
                  </list>  
  ....  
  <!--   product   -->  
  <many-to-one   name="company"   column="companyid"   not-null="true"/>  
   
  在做关联查询以下关联查询时:  
  query   q   =   s.createquery(  
                                        "from   company   com   left   join   fetch   com.products"  
                                          +   "   where   company.companyid=:companyidorder   by   com.comindex"  
                          );  
                          q.setstring("companyid",   companyid);  
   
  得到的结果列表中有重复的记录,其记录数等于product的记录数。  
  为什么会如此,应该返回实际的company列表才对??  
  如果想得到不重复的company怎么办??  
   
  希望各位大侠能帮忙解决,先谢谢了!

电脑软件技术推荐:

  • 中国总机――电话、手机品牌营销解决方案[详细内容]
  • IDG两千万美元押注中国音乐门户上市[详细内容]
  • 深度剖析中国3G传言[详细内容]
  • 中国ADSL市场发展前景研究报告[详细内容]
  • 中国政府IT支出分析报告[详细内容]
  • 以知识产权的名义盘剥中国[详细内容]
  • 日系手机中国市场溃败 僵化管理制约发展[详细内容]
  • 中国军方组织黑客袭美说法无根据[详细内容]
  • 日系手机兵败中国 NEC撤出中低端市场[详细内容]
  • 电信研究院通信陈金桥:中国通信产业政策展望[详细内容]
  • 相关提议:
    发表者:runfeng

    up

    发表者:star_str

    up

    发表者:mofeir

    干嘛要join?  
      呵呵。你自己去company数据的时候,product可以取也可以不取。  
      呵呵,lazy  
     

    发表者:osborne

    你用左连接,   company当然会有重复记录了,    
      不知道你想要得到什么,   要得到company,   只要对company表查询就可以了  
      query   q   =   s.createquery("from   company   com   where   ...");  
     

    发表者:laughsmile

    一个例子:  
      from   company   com   left   join    
      (   select     companyid,max(product_code)as   product_code    
          from     product     group     by   companyid  
      )   product

    .

    No comments in this entry


    Post a Comment »

    Logged in

    Advertising

    Categories

    相关文章