【问题标题】:How do you assign a criteria restriction to every alias如何为每个别名分配条件限制
【发布时间】:2019-12-09 06:43:39
【问题描述】:

在我的示例中,每个孩子都有一个父母,每个父母都可以有多个孩子。我正在尝试获取所有孩子都超过 18 岁的父母名单。以下是我正在尝试的内容,但它给了我至少有一个孩子超过 18 岁的父母。有关如何调整我的代码的任何帮助都是真的很感激。

    Criteria cr = sessionFactory.getCurrentSession().createCriteria(Parent.class);
    cr.createAlias("children", "children");
    cr.setResultTransformer(Criteria.DISTINCT_ROOT_ENTITY);
    cr.add(Restrictions.gt("children.age", 18));
    return cr.list();

【问题讨论】:

    标签: java hibernate alias criteria restriction


    【解决方案1】:

    如果您更改限制以返回所有没有 18 岁以下子女的父母会怎样?像这样:

    cr.add(Restrictions.not(Restrictions.lt("children.age", 18)));
    

    【讨论】:

    • 感谢您的建议。我试过了,但得到的结果与 Restrictions.gt("children.age", 18) 相同。问题是如果一个或多个孩子通过限制,我尝试的每个组合都会给我父母。
    猜你喜欢
    • 1970-01-01
    • 2020-02-10
    • 1970-01-01
    • 1970-01-01
    • 2014-10-20
    • 2019-09-26
    • 2014-06-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多