我的数据具有一对多的关系。我需要查询至少有一个孩子符合条件,所有孩子都符合要求且没有一个孩子符合条件的父母人数。
例如,我想要父母的数目,其中没有一个孩子的material_score等于零。我写了以下规范来获取父列表
return new Specification<Property>() {
@Override
public Predicate toPredicate(Root<Property> root, CriteriaQuery<?> query, CriteriaBuilder builder) {
SetJoin<Property,SurveyItem> surveyItems = root.join(Property_.surveyItems, JoinType.INNER);
return builder.equal(builder.count(builder.equal(surveyItems.get(SurveyItem_.materialScore), 0)), 0);
}
};
但是查询无效
antlr.MismatchedTokenException:期望关闭,发现“ =”标准查询错误
错误是因为不允许计数内的条件查询?
那么我如何获得没有调查项(子项)且物料计数等于零的属性?