@Override @SuppressWarnings("null") public int compare(PersistentPropertyPath<?> left, PersistentPropertyPath<?> right) { Function<PersistentProperty<?>, Integer> mapper = it -> it.getName().length(); Stream<Integer> leftNames = left.stream().map(mapper); Stream<Integer> rightNames = right.stream().map(mapper); return StreamUtils.zip(leftNames, rightNames, (l, r) -> l - r) // .filter(it -> it != 0) // .findFirst() // .orElse(0); } }