【发布时间】:2011-01-26 21:13:30
【问题描述】:
我将如何使用条件 API 执行以下 Hibernate 查询。
我有一个带有列表子对象的父对象。我想搜索所有父母并找到哪些父母包含指定的孩子。
即List<Parent> findParents(Child child);
谢谢。
【问题讨论】:
标签: hibernate criteria associations
我将如何使用条件 API 执行以下 Hibernate 查询。
我有一个带有列表子对象的父对象。我想搜索所有父母并找到哪些父母包含指定的孩子。
即List<Parent> findParents(Child child);
谢谢。
【问题讨论】:
标签: hibernate criteria associations
这似乎对我有用。产品是父级,成分是子级。它有望找到所有包含给定成分的产品。但是,我无法对此进行全面测试。
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。
【讨论】:
在 Java 中是这样的:
Criteria criteria = session.createCriteria(Parent.class,"parent")
.createAlias("child","child")
.add(Restriction.eq("child.name",child.getName());
List<Parent> parents = criteria.list();
应该会给你答案。
【讨论】: