gpt4 book ai didi

sql - GORM/HQL - LISTAGG

转载 作者:行者123 更新时间:2023-12-02 14:42:37 26 4
gpt4 key购买 nike

在 GORM(使用 grails)中,我需要将子选择中的多个结果合并为一个值。 (此子选择的结果将是连接值,我可以在其上进行搜索/排序等......)
查询写为 HQL。 oracle中有这样的东西
http://www.techonthenet.com/oracle/functions/listagg.php

可以在 HQL 中实现类似的东西(例如 GORM)吗?

...
AND (
SELECT LISTAG(e.title) AS con FROM Entity e
WHERE Entity.searchKey = TRUE
AND e.parrent = par
AND LOWER(e.title) LIKE :search
) > 0
...
ORDER BY con ASC

谢谢

最佳答案

Hibernate 和位于 Hibernate 之上的 HQL/GORM 层不直接支持特定于数据库的功能,如 Oracle 的 LISTAGG() .但是,有几种方法可以在 Grails 中使用 native SQL。如果您想将您的连接值添加到您的域对象之一,您可以使用 GORM 的派生属性功能 (http://grails.org/doc/latest/guide/GORM.html#derivedProperties)。

这些方面的东西:

class MyDomain {
Long parentId
String titleAgg

static mapping = {
titleAgg formula: '(SELECT LISTAGG(e.title) FROM Entity e WHERE e.parrent = parent_id)'
}

}

第二种选择是使用 Grails 定义的 dataSource。 bean 和 groovy.sql.Sql执行 native SQL 语句。见 here例如。

关于sql - GORM/HQL - LISTAGG,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26786637/

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