我有一个班级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));
}
感谢。
答案 0 :(得分:1)
尝试此操作并将限制添加到以下条件。
Criteria
newk = [k[k.find('-',5)+1:]]
和几乎所有newk
方法都会修改他们调用的实例,返回实例本身以进行方法通道。所以你可以像上面那样链接电话。