我想通过传递一个对象来查询hibernate,我认为这是支持的,但我想这不是因为我的查询返回了Product表中的所有对象。
我有产品和产品有一组类别,我想退回所有具有该类别的产品。
Category只是一个id(我传递的是null,因为我希望通过名称获取)和一个名称,它是我在类别对象上设置的字符串,然后通过将其添加到Product对象来传递给它附在产品上的一套。
我将一个对象传递给spring rest客户端并将其转换为一个hibernate实体,然后我想我可以将它传递给hibernate,并使用我想要按集合过滤的属性:
public List<Product> getProductsByFilterCriteria(Product productToLocate) {
Session session = sessionFactory.getCurrentSession();
List<Product> products = new ArrayList<Product>();
//Just maps the values
ProductEntity criteria = mapProductCriteriaToEntity(productToLocate);
@SuppressWarnings("unchecked")
List<ProductEntity> productsMatchingCriteria = (List<ProductEntity>)session.createCriteria(ProductEntity.class).add(Example.create(criteria).excludeZeroes()).list();
for(ProductEntity productEntity : productsMatchingCriteria) {
products.add(mapProductEntityToProduct(productEntity));
}
return products;
}
我已经使用包含单个类别的列表设置了产品实体,并且没有设置其他属性。
如何将产品及其类别集合传递给休眠,并获取所有类别名称类别的产品?
答案 0 :(得分:1)
17.8。示例查询
org.hibernate.criterion.Example类允许您从给定实例构造查询条件。
[...]
忽略版本属性,标识符和关联。
(强调我的)