Order by more than one property in criteria builder's params
- 主要语言
- Groovy
- 星标
- 2.9k
- 派生
- 975
- 平均合并
- 1 天 22 小时
- 30 天内合并 PR
- 92
描述
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
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
```
贡献指南
调研方向
从 org.grails.orm.hibernate.query.AbstractHibernateCriteriaBuilder 的第 1615 行开始,使用 issue 中的 Criteria builder 示例重现 ClassCastException。将参数处理与 Dynamic Finder 的行为进行比较;当 Criteria 和 Detached Criteria 能够按所示顺序接受多个排序属性时,即表示完成。
由索引模型根据 Issue 内容生成。
评估
- 领域
- databases
- Issue 类型
- 缺陷
- 难度
- 3/5
- 预计耗时
- 1-2 天
- 活跃度
- 停滞
- 描述清晰度
- 基本清楚
- 新手友好度
- 35/100