grails - 如何用Grails从子对象按日期排序?

标签 grails gorm

我正在尝试根据日期将MyObject列表排序为MyObject.ChildObject。当我尝试执行以下操作时,出现错误。

List<MyObject> myObjectList = MyObject.createCriteria().list(max: params.max, offset: params.offset) {
            eq('test', test)
            eq('deleted', Boolean.FALSE)
            if (params.sort?.contains(".")) {
                buildSort(params.sort.tokenize("."), params.order, delegate)
            } else {
               order("${params.sort ?: 'childObject.date'}", params.order ?: 'asc')
            }
        }

当我尝试这个,我得到
could not resolve property: invoiceTicketDetail.date of: com.test.MyObject. Stacktrace follows:
org.hibernate.QueryException: could not resolve property: childObject.date of: com.test.MyObject
    at grails.orm.PagedResultList.<init>(PagedResultList.java:55)
    at grails.orm.HibernateCriteriaBuilder.createPagedResultList(HibernateCriteriaBuilder.java:230)

如何做到这一点的最佳方法?

进入ChildObject我有一个Date日期属性。并进入MyObject,我有一个ChildObject childObject属性。

最佳答案

没有childObject的别名或子条件,您将无法直接访问childObject.date。尝试使用以下子条件:

List<MyObject> myObjectList = MyObject.createCriteria().list(max: params.max, offset: params.offset) {
            eq('test', test)
            eq('deleted', Boolean.FALSE)
            if (params.sort?.contains(".")) {
                buildSort(params.sort.tokenize("."), params.order, delegate)
            } else {
               childObject {
                   order("${params.sort ?: 'date'}", params.order ?: 'asc')
               }
            }
        }

关于grails - 如何用Grails从子对象按日期排序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32746918/

相关文章:

java - 如何在Grails的闭包内部动态比较 HashMap 键?

grails - Grails如何让多人成为孤儿

grails - Grails 3.0.10 GORM继承

grails - 具有条件的Grails可搜索插件

grails - 类型的Grails radio

grails - 如何在Grails搜索中返回域对象的属性?

grails - GORM Grails 2.3.5分配的ID不持久,被自动生成的ID覆盖

grails - 除Grails中的字符串以外的其他类型的映射

jquery - Grails + Jquery,纯 HTML 不起作用

grails - Groovy/GSP 中鸭子打字的安全操作符