gpt4 book ai didi

grails - Gorm 投影和元信息丢失

转载 作者:行者123 更新时间:2023-12-02 18:43:56 27 4
gpt4 key购买 nike

当对属性使用投影时,结果以列表形式返回,其中元素的顺序与投影 block 中定义的顺序相同。同时,列表中缺少属性名称,这对开发人员来说确实很不利,因为结果将被传递,并且调用者需要知道哪个值属于哪个属性。有没有办法从 Criteria 查询返回一个映射,并将属性名称作为值的键?

所以,下面的代码:

def c = Trade.createCriteria()
def remicTrades = c.list {

projections {
property('title', 'title')
property('author.name', 'author')
}
def now = new Date()
between('publishedDate', now-365, now)
}

这将返回:

[['book1', 'author1']['book2', 'author2']]

相反,我希望它返回:

[[book:'book1', author:'author1'][book:'book2', author:'author2']]

我知道在得到结果后我可以这样安排,但我真诚地认为属性别名应该被标准使用来返回一个模仿 SQL 查询结果的映射列表,而不是一个平淡的列表。

最佳答案

重复:Grails queries with criteria: how to get back a map with column?
以及相应的答案(和解决方案):https://stackoverflow.com/a/16409512/1263227

使用结果转换器。

import org.hibernate.criterion.CriteriaSpecification

Trade.withCriteria {
resultTransformer(CriteriaSpecification.ALIAS_TO_ENTITY_MAP)
projections {
property('title', 'title')
property('author.name', 'author')
}
def now = new Date()
between('publishedDate', now-365, now)
}

关于grails - Gorm 投影和元信息丢失,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13261658/

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