繁体   English   中英

如何使用“多对多”关系标准?

[英]How to use criterias for “many-to-many” relation?

下午好。 学习Hibernate,有必要使用该标准编写以下查询。 有两个实体-水果店和通讯类型-多对多。 因此,我们实际上有三个表(以及Java的相应类):Fruit(ID,名称),Shop(ID,名称)和ShopFruit(shop_id,fruit_id)。 那么,与获取例如橘子的商店清单的标准一样? 提前致谢。

我认为您可以使用这样的别名:

List questions = session.createCriteria(Shop.class)
  .createAlias("Fruits", "f")
  .add(Restrictions.eq("f.name", "tangerine"))
  .list();

另请参阅此问题 但是,我认为您也可以在Hibernate映射中为Fruit设置一个集合来解决此问题:

<set name="stores" table="ShopFruit" cascade="all">
  <key column="fruit_id" />
  <many-to-many column="store_id" />
</set>

通过商店集扩展您的Fruit类:

class Fruit {
  ...
  Set<Store> stores;
  ...
}

如果您要从数据库中加载“橘子” Fruit对象,则stores变量应包含所有出售它的商店。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM