gpt4 book ai didi

sql - Grails查询行到数组

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

我是Groovy和Grails的新手。我认为这个问题可能有一个简单的答案,我只是不知道。

我有一个数据库表:

id | category | caption | image | link

我有一个查询,可让我为“类别”中的每个不同项目检索一行。

我试图返回一张 map ,其中每一行都是由其类别命名的数组。

例如,如果我选择以下行:
[{category='foo', caption='stuff', ...} {category='bar', caption='things', ...}]
我希望能够:
return [foo:foo, bar:bar]

哪里:
foo = [caption='stuff', ...]
bar = [caption='things', ...]

谢谢你的帮助。

最佳答案

您可以在Groovy中使用collect转换列表,但是结果取决于源数据。我无法从您的帖子中推断出,如果您要为每个类别或多个类别返回一项。

def ls = Category.list()
def newList = ls.collect {
[(it.category):['caption':it.caption,'image':it.image,'link':it.link]]
}

将导致类似:

[
[bar:[caption:BarCaption-2, image:BarImage-2, link:BarLink-2]],
[bar:[caption:BarCaption-1, image:BarImage-1, link:BarLink-1]],
[bar:[caption:BarCaption-0, image:BarImage-0, link:BarLink-0]],
[foo:[caption:FooCaption-2, image:FooImage-2, link:FooLink-2]],
[foo:[caption:FooCaption-1, image:FooImage-1, link:FooLink-1]],
[foo:[caption:FooCaption-0, image:FooImage-0, link:FooLink-0]]
]



如果每个类别有多个项目,则可能要返回每个项目的列表。
def  bars = newList.findAll { it.containsKey 'bar'  }
def foos = newList.findAll { it.containsKey 'foo' }

[foos:foos,bars:bars]

关于sql - Grails查询行到数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18543855/

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