qty|price
1 | 4
4 | 5
6 | 4
2 | 3
1 | 2
- это записи в базе данных. Я пытаюсь получить результат: (количество групп по цене)ошибка агрегации java hibernate
qty|price
7 | 4
4 | 5
2 | 3
1 | 2
Я успешна, когда я делаю этот запрос, используя sqlwave моего местного Databse
SELECT price, sum(quantity) FROM table
, но когда я пытаюсь это в Java/hibernate .. и попробуйте перечислить, я не получаю результаты для агрегации sum(). Я попробовал агрегацию .. но она дает мне сумму всех величин, а не по цене. Как я могу ограничить, чтобы получить сумму количества по конкретной цене?
Вот мой метод:
protected void listInventory(String productID)
{
Session session = sessionFactory.openSession();
Transaction tx = null;
try{
tx = session.beginTransaction();
Query query = session.createQuery("SELECT price, sum(quantity) FROM table WHERE product_code=:productID GROUP BY price");
query.setParameter("product_code",productID);
List iv = query.list();
for(Iterator iterator = iv.iterator();iterator.hasNext();){
Products pb = (Products)iterator.next();
System.out.println("Price: "+pb.getPrice());
System.out.println("Quantity: " + pb.getQuantity());
}
tx.commit();
}catch (HibernateException e) {
if (tx!=null) tx.rollback();
e.printStackTrace();
}finally {
session.close();serverWriter.flush();
}
}
Пожалуйста, ваши конкретные запрос HQL/JPQL и как вы читаете это, наряду с Hibernate сгенерированного SQL. – chrylis
@chrylis обновлен. Я знаю, что pb.getQuantity() будет получать только количество для этой конкретной записи. Поэтому мне интересно, как я могу разместить агрегированную сумму qty для этой цены вместо нее. – user2556304