@Override public Predicate buildPredicate(CriteriaBuilder builder, FieldPathBuilder fieldPathBuilder, From root, String ceilingEntity, String fullPropertyName, Path<Serializable> explicitPath, List<String> directValues) { if (String.class.isAssignableFrom(explicitPath.getJavaType())) { return builder.equal(explicitPath, directValues.get(0)); } else { return builder.equal(explicitPath, Long.parseLong(directValues.get(0))); } } })
@Override public Predicate buildPredicate(CriteriaBuilder builder, FieldPathBuilder fieldPathBuilder, From root, String ceilingEntity, String fullPropertyName, Path<Serializable> explicitPath, List<String> directValues) { if (String.class.isAssignableFrom(explicitPath.getJavaType())) { return builder.equal(explicitPath, directValues.get(0)); } else { return builder.equal(explicitPath, Long.parseLong(directValues.get(0))); } } })
@Override @SuppressWarnings("unchecked") public <Y, X extends Y> CriteriaUpdate<T> set(SingularAttribute<? super T, Y> singularAttribute, X value) { final Path<Y> attributePath = getRoot().get( singularAttribute ); final Expression valueExpression = value == null ? criteriaBuilder().nullLiteral( attributePath.getJavaType() ) : criteriaBuilder().literal( value ); addAssignment( attributePath, valueExpression ); return this; }
@Override @SuppressWarnings("unchecked") public CriteriaUpdate<T> set(String attributeName, Object value) { final Path attributePath = getRoot().get( attributeName ); final Expression valueExpression = value == null ? criteriaBuilder().nullLiteral( attributePath.getJavaType() ) : criteriaBuilder().literal( value ); addAssignment( attributePath, valueExpression ); return this; }
@Override @SuppressWarnings("unchecked") public <Y, X extends Y> CriteriaUpdate<T> set(Path<Y> attributePath, X value) { final Expression valueExpression = value == null ? criteriaBuilder().nullLiteral( attributePath.getJavaType() ) : criteriaBuilder().literal( value ); addAssignment( attributePath, valueExpression ); return this; }
protected void addSorting(CriteriaBuilder criteriaBuilder, List<Order> sorts, FilterMapping filterMapping, Path path) { Expression exp = path; if (filterMapping.getNullsLast() != null && filterMapping.getNullsLast()) { Object largeValue = getAppropriateLargeSortingValue(path.getJavaType()); if (largeValue != null) { exp = criteriaBuilder.coalesce(path, largeValue); } } if (SortDirection.ASCENDING == filterMapping.getSortDirection()) { sorts.add(criteriaBuilder.asc(exp)); } else { sorts.add(criteriaBuilder.desc(exp)); } }
String piece = myFieldPath.getTargetPropertyPieces().get(i); if (path.getJavaType().isAnnotationPresent(Embeddable.class)) { String original = ((SingularAttributePath) path).getAttribute().getDeclaringType().getJavaType().getName() + "." + ((SingularAttributePath) path).getAttribute().getName() + "." + piece; String copy = path.getJavaType().getName() + "." + piece; copyCollectionPersister(original, copy, ((CriteriaBuilderImpl) builder).getEntityManagerFactory().getSessionFactory()); path.getJavaType(), em.getSessionFactory(), true, true); if (path.getParentPath() != null && path.getParentPath().getJavaType().isAnnotationPresent(Embeddable.class) && path instanceof PluralAttributePath) {
@SuppressWarnings("unchecked") @Override public Class<? extends Class<? extends T>> getJavaType() { return (Class<? extends Class<? extends T>>)this.path.getJavaType(); }
private boolean isCollection(Path<?> path) { Class<?> type = path.getJavaType(); if (Collection.class.isAssignableFrom(type)) { return true; } return false; }
private boolean isMap(Path<?> path) { Class<?> type = path.getJavaType(); if (Map.class.isAssignableFrom(type)) { return true; } return false; }
public static Class<?> getRootClass(Path<?> path) { Path<?> rootPath = getRootPath(path); Class<?> result = rootPath == null ? null : rootPath.getJavaType(); return result; }
private Object parseValue(Path<Object> path, Object value) { if (Date.class.isAssignableFrom(path.getJavaType())) { try { SimpleDateFormat dateFormat = this.dateFormat != null ? this.dateFormat : defaultDateFormat; value = dateFormat.parse(value.toString()); } catch (ParseException e) { throw new SpecificationException("Illegal date format: " + value + ", required format is " + dateFormat.toPattern()); } } return value; }
private static Class<?> treatedAsType(Path<?> path) { Path<?> treatedParent = ((AbstractPath<?>)path).getTreatedParent(); if (treatedParent != null) { return path.getJavaType(); } return null; }
public static Class<?> getRootClass(Path<?> path) { Path<?> rootPath = getRootPath(path); Class<?> result = rootPath == null ? null : rootPath.getJavaType(); return result; }
private AbstractExpression<?> valueExpression(Path<?> attributePath, Object value) { if (value == null) { return criteriaBuilder.nullLiteral(attributePath.getJavaType()); } else if (value instanceof AbstractExpression<?>) { return (AbstractExpression<?>) value; } else { return criteriaBuilder.literal(value); } }
private AbstractExpression<?> valueExpression(Path<?> attributePath, Object value) { if (value == null) { return criteriaBuilder.nullLiteral(attributePath.getJavaType()); } else if (value instanceof AbstractExpression<?>) { return (AbstractExpression<?>) value; } else { return criteriaBuilder.literal(value); } }
@Override public Predicate toPredicate(Root<T> root, CriteriaQuery<?> query, CriteriaBuilder cb) { if (path(root).getJavaType().equals(String.class)) { return cb.equal(cb.upper(this.<String>path(root)), expectedValue.toUpperCase()); } return super.toPredicate(root, query, cb); } }
@Override public Predicate toPredicate(Root<T> root, CriteriaQuery<?> query, CriteriaBuilder cb) { Path<?> path = path(root); Class<?> typeOnPath = path.getJavaType(); return path.in(converter.convert(Arrays.asList(allowedValues), typeOnPath)); }
@Override public Predicate toPredicate(Root<T> root, CriteriaQuery<?> query, CriteriaBuilder cb) { Class<?> typeOnPath = path(root).getJavaType(); return cb.equal(path(root), converter.convert(expectedValue, typeOnPath)); }
@Override public Predicate toPredicate(Root<T> root, CriteriaQuery<?> query, CriteriaBuilder cb) { Class<?> typeOnPath = path(root).getJavaType(); return cb.notEqual(path(root), converter.convert(expectedValue, typeOnPath)); }