【问题标题】:Use listAgg with H2 db in Grails在 Grails 中使用 listAgg 和 H2 db
【发布时间】:2016-06-13 12:57:14
【问题描述】:

我有一个 grails 应用程序。我们支持 Oracle db 和 H2 db。

我在 prod 上使用 Oracle 11g DB,在开发环境上使用 H2 DB。 我有带有“listAgg”功能的休眠查询。它在 Oracle 上运行良好。 但是H2不支持这个功能。我该怎么做才能将此功能与 H2 一起使用?

我认为可以通过自定义方言来完成。但我不明白怎么做。谁能详细解释一下?

我看到 H2 具有类似于 listAgg 的“group_concat”功能。我可以配置我的应用程序,以便将“group_concat”用于 H2DB 而不是 listAgg。

Grails 2.3.11.

非常感谢!

【问题讨论】:

    标签: java hibernate grails hql dialect


    【解决方案1】:

    LISTAGG 是特定于 Oracle 的函数。您将无法在其他数据库中使用它。例如,在 MSSQL 中,可以使用 STUFF 函数。

    如果您在 H2 中需要它,则必须使用此名称定义用户定义的函数,这与 LISTAGG 在 Oracle 中的作用相同。详情见http://www.h2database.com/html/features.html#user_defined_functions

    【讨论】:

    • 感谢您的回复!但我想将它与 grails 和 hibernate 一起使用,而不是原生 sql。
    • 我对 ListAgg oracle 函数的“内部”部分有疑问。我该如何定义它?
    猜你喜欢
    • 1970-01-01
    • 2012-06-29
    • 1970-01-01
    • 1970-01-01
    • 2019-07-27
    • 1970-01-01
    • 1970-01-01
    • 2021-02-22
    • 1970-01-01
    相关资源
    最近更新 更多