2012-07-25 68 views
0

我有三个表如何从Hibernate中检索具有多对多关系的记录?

Users       Deal    Dealusers 
==========      ======    ========== 
userid(PK)      dealid(PK)   dealid(PK+FK) 
                userid(PK+FK) 

现在我有使用Hibernate工具在Eclipse 所以我就为用户& Deal表POJO类& HBM文件只因为这个多对多的关系产生映射。

现在我要查询“得到谁购买dealid用户列表= 1”

所以,我如何把这个使用Hibernate查询? 在此先感谢。

<set name="userses" table="dealusers" inverse="false" lazy="true" fetch="select"> 
      <key> 
       <column name="dealid" not-null="true" /> 
      </key> 
      <many-to-many entity-name="com.test.model.Users"> 
       <column name="userid" not-null="true" /> 
      </many-to-many> 
     </set> 

回答

0
Deal deal = session.get(Deal.class, 1); 
return deal.getUsers(); 

那样简单。

+0

对不起,但我没有用户对象在生成的HBM文件,而不是它包含 私人设置 userses = new HashSet (0); – JMoh 2012-07-25 09:23:44

+0

上面的用户集合很小,是你想要返回的集合。 – 2012-07-25 09:30:43

+0

是的,但它的延迟加载,所以我应该如何初始化它 – JMoh 2012-07-25 10:39:58

相关问题