CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
【经验总结】不能实施并行处理的情况 浅谈并行编程中的任务分解模式
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  Java >  J2SE / 基础类

Hibernate left join fetch 关联查询问题

楼主llsoft(天堂鱼)2005-07-17 17:55:16 在 Java / J2SE / 基础类 提问

有一对关联表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怎么办??  
   
  希望各位大侠能帮忙解决,先谢谢了! 问题点数:200、回复次数:7Top

1 楼runfeng(sunday)回复于 2005-07-17 21:08:03 得分 10

upTop

2 楼star_str(生命火花)回复于 2005-07-17 21:11:20 得分 10

upTop

3 楼mofeir(损人专家)回复于 2005-07-18 18:11:57 得分 50

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

4 楼llsoft(天堂鱼)回复于 2005-07-19 09:32:15 得分 0

to   :mofeir(损人专家)    
   
  就是为了方便,懒得再把product加到company上,再说这样只执行一条sql语句,效率高。  
   
  我现在通过for循环把相同的给略掉了,不知道还要有没有更好的办法?Top

5 楼osborne(做人要本份!)回复于 2005-07-19 09:49:54 得分 50

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

6 楼llsoft(天堂鱼)回复于 2005-07-22 10:45:15 得分 0

我想把二者的数据一起取到,把相关product放到company的一个列表中  
   
  看来这里和标准sql还是一致的Top

7 楼laughsmile(海边的星空)回复于 2005-07-22 11:31:50 得分 80

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

相关问题

  • Hibernate 双向关联问题???
  • hibernate 的关联问题
  • 100分!!!问hibernate表间关联问题
  • hibernate中关联表的设计问题
  • Hibernate中如何删除many-to-many之中的关联关系?
  • hibernate的关联查询问题,解决马上给分
  • hibernate 三表关联怎样配置 ??谁有资料。谢谢
  • hibernate中多关键字表之间关联出问题
  • hibernate关联关系问题(解决此问题给500分)
  • hibernate支持配置非主键一对多关联吗??

关键词

  • companyid
  • 关联
  • company
  • 列表
  • left join
  • 记录
  • product
  • 得到

得分解答快速导航

  • 帖主:llsoft
  • runfeng
  • star_str
  • mofeir
  • osborne
  • laughsmile

相关链接

  • CSDN Java频道
  • Java类图书
  • Java类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
惹火投票。。火热进行中...
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
CSDN网站24小时值班电话:13552009689
Copyright © 2000-2009, CSDN.NET, All Rights Reserved
GongshangLogo