«Нужно ли все цены на указанный цвет?» Только вы можете ответить на этот вопрос, никто из нас не будет знать ваши требования к бизнесу.
Что касается HQL, все, что вам нужно сделать, это просто получить объект «Цвет» и перейти к его ценам.
// obtain session, start transaction..
List<Color> colors = session.createQuery("select c from Color c where name = :name").setString("name", "blue").list();
Set<Price> prices = new HashSet<Price>();
for(Color c : colors) {
for(Product p : c.getProducts()) {
prices.addAll(p.getPrices());
}
}
// end transaction..
Примечание: в зависимости от количества и распределения данных программа выше может привести к чрезмерным запросам и низкой производительности. Подумайте о том, как использовать нетерпеливое отношение/присоединиться к выборке на HQL (например: «выберите c из цвета c левым соединением fetch c.products»)
благодарю вас за ответ извините, я объясню свою проблему: в продукте таблица i имеет поле «тип», а таблица - это цена, которую я подал «price_min» – cary
Я пытаюсь сделать этот запрос – cary
Запрос запроса = hibernatesession.createQuery («выберите отдельный prlpx из Color c, Product pr» + \t \t \t \t \t \t "присоединиться pr.listPrice prlpx" + \t \t \t \t \t \t "join c.listProduct clpr где clpr.nom = '" + color + "'" + \t "И prlpx.price_min = '" + price_min + "' pr.type = 'x'"); \t listPrice = (Список) query.list(); –
cary