CriteriaBuilder cb = em.getCriteriaBuilder(); CriteriaQuery cq = cb.createQuery(Employee.class); Root emp = cq.from(Employee.class); <b> <i> Path<List<Project>> </i> </b> projects = emp.get("projects")); cq.where(cb.isEmpty(projects); cq.select(emp);
return type.equals(IS_NOT_EMPTY) ? builder.isNotEmpty(collectionPath) : builder.isEmpty(collectionPath);
public static Predicate createIsEmptyPredicate(final CriteriaBuilder criteriaBuilder, final Path path) { return criteriaBuilder.isEmpty(path); }
CriteriaBuilder cb = ... CriteriaQuery<UserProfile> q = cb.createQuery(UserProfile .class); Root<UserProfile> userProfile= q.from(UserProfile .class); q.select(userProfile) q.where(cb.isEmpty(userProfile.get("person"));
protected <X> Specification<ENTITY> byFieldEmptiness(Function<Root<ENTITY>, Expression<Set<X>>> metaclassFunction, final boolean specified) { return specified ? (root, query, builder) -> builder.isNotEmpty(metaclassFunction.apply(root)) : (root, query, builder) -> builder.isEmpty(metaclassFunction.apply(root)); }
protected <X> Specification<ENTITY> byFieldSpecified(SetAttribute<ENTITY, X> field, final boolean specified) { return specified ? (root, query, builder) -> builder.isNotEmpty(root.get(field)) : (root, query, builder) -> builder.isEmpty(root.get(field)); }
@Override public List<Predicate> build(CriteriaBuilder builder, Path<E> path) { return Arrays.asList(builder.isEmpty(path.get(att))); }
@Override public List<Predicate> build(CriteriaBuilder builder, Path<E> path) { return Arrays.asList(builder.isEmpty(path.get(getAtt()))); }
private void fillPredicates(List<Predicate> predicates, From<?, ?> from, CriteriaBuilder criteriaBuilder, CriteriaQuery<?> criteriaQuery, TreeNodeField<String, Set<String>> child, String value, TreeNodeField<String, Set<String>> parent) { if ("null".equals(value) || value == null) { predicates.add(criteriaBuilder.isNull(from.get(child.getKey()))); } else if (child.getValue().isEmpty()) { predicates.add(criteriaBuilder.isEmpty(from.get(child.getKey()))); } else if (isLikeFilter(value)) { predicates.add(buildLikePredicate(criteriaBuilder, criteriaQuery, from, child.getKey(), value)); } else if ("isTrue".equalsIgnoreCase(value) || "true".equalsIgnoreCase(value)) { predicates.add(criteriaBuilder.isTrue(from.get(child.getKey()))); } else if ("isFalse".equalsIgnoreCase(value) || "false".equalsIgnoreCase(value)) { predicates.add(criteriaBuilder.isFalse(from.get(child.getKey()))); } else if (isEnumFilter(child.getKey(), value, parent)) { predicates.add(criteriaBuilder.equal(from.get(child.getKey()), convertEnumToInt(child.getKey(), value, parent))); } else if (isUUIDFilter(child.getKey(), value, parent)) { predicates.add(criteriaBuilder.equal(from.get(child.getKey()), UUID.fromString(value))); } else { predicates.add(criteriaBuilder.equal(from.get(child.getKey()), value)); } }
private void fillPredicates(List<Predicate> predicates, From<?, ?> from, CriteriaBuilder criteriaBuilder, CriteriaQuery<?> criteriaQuery, TreeNodeField<String, Set<String>> child, String value, TreeNodeField<String, Set<String>> parent) { if ("null".equals(value) || value == null) { predicates.add(criteriaBuilder.isNull(from.get(child.getKey()))); } else if (child.getValue().isEmpty()) { predicates.add(criteriaBuilder.isEmpty(from.get(child.getKey()))); } else if (isLikeFilter(value)) { predicates.add(buildLikePredicate(criteriaBuilder, criteriaQuery, from, child.getKey(), value)); } else if ("isTrue".equalsIgnoreCase(value) || "true".equalsIgnoreCase(value)) { predicates.add(criteriaBuilder.isTrue(from.get(child.getKey()))); } else if ("isFalse".equalsIgnoreCase(value) || "false".equalsIgnoreCase(value)) { predicates.add(criteriaBuilder.isFalse(from.get(child.getKey()))); } else if (isEnumFilter(child.getKey(), value, parent)) { predicates.add(criteriaBuilder.equal(from.get(child.getKey()), convertEnumToInt(child.getKey(), value, parent))); } else if (isUUIDFilter(child.getKey(), value, parent)) { predicates.add(criteriaBuilder.equal(from.get(child.getKey()), UUID.fromString(value))); } else { predicates.add(criteriaBuilder.equal(from.get(child.getKey()), value)); } }
return getCriteriaBuilder().isEmpty(path.as(Collection.class)); } else { return null;
return type.equals(IS_NOT_EMPTY) ? builder.isNotEmpty(collectionPath) : builder.isEmpty(collectionPath);
return builder.isEmpty((Expression<Collection>)path); } else { return null;