Skip to content

Commit

Permalink
Correct
Browse files Browse the repository at this point in the history
  • Loading branch information
dstepanov committed Jan 29, 2025
1 parent 8a67190 commit a956821
Showing 1 changed file with 10 additions and 11 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -55,6 +55,7 @@
import jakarta.persistence.criteria.CriteriaQuery;
import jakarta.persistence.criteria.CriteriaUpdate;
import jakarta.persistence.criteria.Expression;
import jakarta.persistence.criteria.From;
import jakarta.persistence.criteria.Order;
import jakarta.persistence.criteria.Path;
import jakarta.persistence.criteria.Predicate;
Expand Down Expand Up @@ -377,13 +378,12 @@ private <K> CriteriaQuery<Tuple> createSelectIdsCriteriaQuery(MethodInvocationCo
selection.add(getIdExpression(root));
// We need to select all ordered properties from ORDER BY for DISTINCT to work properly
for (Sort.Order order : sort.getOrderBy()) {
Path<Object> path = null;
for (Iterator<String> iterator = StringUtils.splitOmitEmptyStrings(order.getProperty(), '.').iterator(); iterator.hasNext(); ) {
String next = iterator.next();
if (iterator.hasNext()) {
path = root.join(next);
Path<?> path = root;
for (String next : StringUtils.splitOmitEmptyStrings(order.getProperty(), '.')) {
if (path instanceof From<?, ?> from) {
path = from.join(next);
} else {
path = root.get(next);
path = path.get(next);
}
}
selection.add(path);
Expand Down Expand Up @@ -587,12 +587,11 @@ private List<Order> getOrders(Sort sort, Root<?> root, CriteriaBuilder cb) {
List<Order> orders = new ArrayList<>();
for (Sort.Order order : sort.getOrderBy()) {
Path<?> path = root;
for (Iterator<String> iterator = StringUtils.splitOmitEmptyStrings(order.getProperty(), '.').iterator(); iterator.hasNext(); ) {
String next = iterator.next();
if (iterator.hasNext()) {
path = root.join(next);
for (String next : StringUtils.splitOmitEmptyStrings(order.getProperty(), '.')) {
if (path instanceof From<?, ?> from) {
path = from.join(next);
} else {
path = root.get(next);
path = path.get(next);
}
}
Expression<?> expression = order.isIgnoreCase() ? cb.lower(path.type().as(String.class)) : path;
Expand Down

0 comments on commit a956821

Please sign in to comment.