2011-05-09 53 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