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怎么办??
希望各位大侠能帮忙解决,先谢谢了!
电脑软件技术推荐:
up
up
干嘛要join?
呵呵。你自己去company数据的时候,product可以取也可以不取。
呵呵,lazy
你用左连接, company当然会有重复记录了,
不知道你想要得到什么, 要得到company, 只要对company表查询就可以了
query q = s.createquery("from company com where ...");
一个例子:
from company com left join
( select companyid,max(product_code)as product_code
from product group by companyid
) product
No comments in this entry