2011-05-09 56 views
0

我有一個與ProductInventory類具有一對多關係的產品類。對於特定的產品ID,我有大約300個庫存。Hibernate查詢幫助

如果我想根據其id和庫存獲取具有指定日期範圍的產品,我該如何執行查詢?

我可以去hql或標準..但我不知道如何實現它,因爲我是一個初學者在休眠。請幫忙。

+0

你有任何SQL知識呢?在發佈這個問題之前,你甚至試圖通讀hibernate hql文檔嗎? – user658991 2011-05-09 05:24:08

+0

我沒有... Infact我有一個hql連接查詢運行正常。但是,如何處理查詢的輸出是我遇到的地方。 – Sripaul 2011-05-09 05:32:59

回答

0

我會推薦使用標準和日期範圍,您可以使用

criteria.add(Restrictions.between(column_name, minValue,maxValue)).list(); 

更多參考visit here

1

HQL例,

String hql = "FROM Product p WHERE p.id = :id AND p.inventory.date BETWEEN :date1 AND :date2"; 

Query query = session.createQuery(hql); 
query.setParameter("id", id); 
query.setParameter("date1", date1); 
query.setParameter("date2", date2);  

List<Product> products = query.list(); 
for(Product product : products) { 
    System.out.println(product.getId() + "..."); 
    List<ProductInventory> inventories = product.getProductInventory(); 
    for(ProductInventory inventory : inventories) { 
     System.out.println(inventory.get...); 
    } 
} 
+0

嗨rosdi,在上面的hql中,庫存是一個集合嗎? – Sripaul 2011-05-10 04:15:51

+0

當然,這是一對多的關係。它可以是'Set'或'List',具體取決於你在映射/註釋中如何配置它。 – 2011-05-11 03:05:05

+0

Rosdi,我在我的代碼中嘗試過。我收到一個異常說非法企圖取消引用集合... – Sripaul 2011-05-11 04:27:49