Order by more than one property in criteria builder's params
- 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
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