关联时的Hibernate Criteria查询

时间:2010-03-12 15:26:20

标签: hibernate criteria associations

如何使用条件API执行以下Hibernate查询。 我有一个带有List子对象的父对象。我想搜索所有家长,找到哪个家长包含指定的孩子。 即List<Parent> findParents(Child child);

感谢。

2 个答案:

答案 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();

应该给你答案。