如何使用条件API执行以下Hibernate查询。
我有一个带有List子对象的父对象。我想搜索所有家长,找到哪个家长包含指定的孩子。
即List<Parent> findParents(Child child);
感谢。
答案 0 :(得分:2)
这似乎对我有用。产品是父母,成分是孩子。希望能找到含有给定成分的所有产品。然而,我无法完全测试它。
public IList<Product> GetProductsWithIngredient(Ingredient ingredient)
{
using (ITransaction transaction = session.BeginTransaction())
{
ICriteria criteria = session.CreateCriteria<Product>();
criteria.CreateCriteria("Ingredients")
.Add(Restrictions.Eq("GUID", ingredient.GUID));
return criteria.List<Product>();
}
}
希望这会有所帮助:)
注意:GUID是我的唯一标识符。
编辑:我刚刚使用多个产品对其进行了测试,它似乎返回了正确的产品。感谢zoidbeck。答案 1 :(得分:0)
在Java中就像这样:
Criteria criteria = session.createCriteria(Parent.class,"parent")
.createAlias("child","child")
.add(Restriction.eq("child.name",child.getName());
List<Parent> parents = criteria.list();
应该给你答案。