为什么在没有添加限制效果的情况下创建Hibernate Criteria?

时间:2015-06-09 01:30:24

标签: java hibernate

我有一个班级AttributeGroup,与班级Attribute有多对一的关系。如果有AttributeGroup名称或Attribute名称或两者都有,我希望返回适当的数据连接。这是我的初始化代码:

Criteria criteria = HibernateUtil.getCurrentSession()
    .createCriteria(AttributeGroup.class)
    .setResultTransformer(Criteria.DISTINCT_ROOT_ENTITY);

一切都很好。如果我通过调用List返回criteria.list(),我会在数据库中获得每个AttributeGroup。奇怪的是,如果我接下来添加这一行:

Criteria attributesCriteria = criteria.createCriteria("attributes");

在这种情况下,返回空List。发生了什么?我的理解是attributesCriteria在我添加Restriction之前应该没有效果。我接下来要做的喜欢

if (attribute != null) {
    attributesCriteria.add(Restrictions.eq("name", attribute));
}

感谢。

1 个答案:

答案 0 :(得分:1)

尝试此操作并将限制添加到以下条件。

Criteria

newk = [k[k.find('-',5)+1:]] 和几乎所有newk方法都会修改他们调用的实例,返回实例本身以进行方法通道。所以你可以像上面那样链接电话。