apache / apache/grails-core

Order by more than one property in criteria builder's params

Đang mở
#14,653 1 bình luận 0 reaction 0 người được giao Xem trên GitHub
relates-to: gorm
Ngôn ngữ chính
Groovy
Star
2.9k
Fork
975
Merge trung bình
1 ngày 22 giờ
Pull request đã merge (30 ngày)
92

Mô tả

Sort parmeter in param map for Criteria builder doesn't work the same way as in Dynamic Finders. In dynamic finder we could do this:

```
Author.findAllByNameLike("A%", [sort: [name: "desc", id: "asc"]])
```

If we try to do the same for Criteria builder or with Detached Criteria:

```
Author.createCriteria().list(sort: [name: "desc", id: "asc"]) {
like 'name', "A%"
}
```

The ClassCastException will be thrown:

```
java.util.LinkedHashMap cannot be cast to java.lang.String. Stacktrace follows:
Message: java.util.LinkedHashMap cannot be cast to java.lang.String
Line | Method
->> 1615 | invokeMethod in org.grails.orm.hibernate.query.AbstractHibernateCriteriaBuilder
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
```

Hướng dẫn đóng góp

Mở hướng dẫn đóng góp

Hướng nghiên cứu

Bắt đầu từ dòng 1615 của org.grails.orm.hibernate.query.AbstractHibernateCriteriaBuilder và tái hiện ClassCastException với ví dụ Criteria builder trong issue. So sánh cách xử lý tham số với hành vi của Dynamic Finder; hoàn thành khi Criteria và Detached Criteria chấp nhận nhiều thuộc tính sắp xếp theo thứ tự được hiển thị.

Do mô hình lập chỉ mục viết ra từ nội dung của issue.

Đánh giá

Lĩnh vực
databases
Loại issue
Lỗi
Độ khó
3/5
Thời gian dự kiến
1-2 ngày
Mức độ hoạt động
Đình trệ
Độ rõ ràng
Khá rõ ràng
Mức phù hợp với người mới
35/100

Nhận issue mới trong hộp thư của bạn

Bản tóm tắt ngắn những issue GitHub phù hợp với người mới.