gpt4 book ai didi

grails - 在联接表上选择查询-GORM

转载 作者:行者123 更新时间:2023-12-02 15:25:37 27 4
gpt4 key购买 nike

我有两个表,机构和目录具有多对多关系,并联接表如下。

class Agency{
static hasMany = [catalogs: Catalog]
static mapping={
catalogs: joinTable:[name 'agcat']
}
}

class Catalog{
String catalog_name
static hasMany = [agencies: Agency]
static belongsTo = Agency

static mapping={
agencies: joinTable:[name 'agcat']
}
}

我想获取给定Agency.id = 3的目录列表(在我的情况下,目录1和2)已在下面使用动态查找器进行了尝试,但它却给了我一行。
 Agency agency = Agency.findById(id)
def catalog = agency ? Catalog.findAllById(agency.id): []

我的联接表agat看起来像这样-
agency_id|catalog_id
2 3
3 1
3 2
4 4

有什么帮助吗?

最佳答案

就在这里,不需要查询:

Agency agency = Agency.get(id)
def catalogs = agency?.catalogs ?: []

请注意,我使用的是 get而不是 findById。它们基本上是相同的SQL查询,但是 findById是一个动态查找器,默认情况下不使用缓存,如果确实这样做(即,它被清除了很多),则非常悲观地使用它,而 get调用始终被缓存(至少在1级缓存)。

关于grails - 在联接表上选择查询-GORM,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28095708/

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