Например, у меня есть файл сопоставления, подобный этому
<class name="my.test.model.Product" table="PRODUCT">
...
<set name="retailers" table="product_shop" lazy="false">
<key column="PRODUCT_ID" />
<many-to-many column="SHOP_ID" class="my.test.model.Shop" />
</set>
...
</class>
Теперь я хочу запросить продукты определенного магазина A. Что-то вроде этого приходит на ум:
String searchHql = "select p from Product p inner join p.retailers retailing where p.retailers.shop_id = :shopId";
@SuppressWarnings("unchecked")
List<Product> productList = sessionFactory.getCurrentSession().createQuery(searchHql ).setInteger("shopId", shopId).list();
Но это не сработает.Возвращенная ошибка:
не удалось разрешить свойство: shop_id из: my.test.model.Shop.Я много искал, но все еще не нашел правильный способ доступа к подмножеству «многие ко многим» в hql.Это возможно?Или мне нужно сопоставить таблицу Product_Shop с классом модели?
UPDATE : поскольку, похоже, другого пути нет, в итоге я сопоставляю Product_Shop с классом.