gpt4 book ai didi

grails - 按外键列对GORM查询结果进行排序

转载 作者:行者123 更新时间:2023-12-02 14:01:03 24 4
gpt4 key购买 nike

我有一个在Grails中完全映射的外键关系,可以这样说:

class Hero {
Long id
String name
Long experience

Pet pet
.....
}

class Pet {
Long id
String name
Long ownerId
.....
}

假设我要查询所有将 Hero命名为“打ic”的 Pet。因此,我将查询 Hero类:
def matching = Hero.findAll {
ilike('pet.name', '%Hiccup%')
}

而且有效!问题是如何按 ListPet列对返回的 Name进行排序?我试过了:
def matching = Hero.findAll {
ilike('pet.name', '%Hiccup%')
orderBy('pet.name', 'asc')
}

但是它返回一个错误:
org.hibernate.QueryException:
could not resolve property: pet.name of: Hero

谢谢。

最佳答案

试试这个:

def matching = Hero.withCriteria {
pet {
ilike('name', '%Hiccup%')
orderBy('name', 'asc')
}
}

或相反:
def matching = Pet.withCriteria {
projections {
property('hero')
}
ilike('name', '%Hiccup%')
orderBy('name', 'asc')
}

但这仅在使用grails命令声明宠物<->英雄关系时有效。我不知道这是一对一还是一对多

应该是这样的(一对一):
class Hero {
Long id
String name
Long experience

static hasOne = [pet:Pet]
.....
}

class Pet {
Long id
String name
Long ownerId
.....

static belongsTo = [hero:Hero]
}

关于grails - 按外键列对GORM查询结果进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31451214/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com