You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用DetachedCriteria的list方法按嵌套属性排序报错该如何解决

异常原因

你调用criteria.list()时传入的sort参数默认仅会匹配根实体UserRole的直接属性,不会自动识别你提前创建的关联别名对应的嵌套属性,因此会抛出could not resolve property的异常。

解决方法

放弃使用list方法的sort、order参数,手动为Criteria添加排序规则即可,示例代码如下:

// 保留你之前创建关联别名的逻辑
criteria.createAlias("user", "user")

// 手动添加排序规则,注意前缀要和你创建的别名保持一致
if (orderDir == 'asc') {
    criteria.addOrder(Order.asc(sort))
} else {
    criteria.addOrder(Order.desc(sort))
}

// 调用list时仅传入分页参数
def userRoleList = criteria.list(max: params.length, offset: params.start)

注意事项

  • 排序字段sort的前缀必须和你创建的别名完全匹配:你创建的别名为user,sort参数传user.username或user.enabled即可正常识别
  • 需保证createAlias方法在添加排序规则、调用list方法之前执行,且操作的是同一个Criteria实例

内容的提问来源于stack exchange,提问作者Alejandro Pacheco Tejeda

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.04 19:27:01