2016-06-13 12 views
1

私はgrailsアプリケーションを持っています。 OracleデータベースとH2データベースをサポートしています。GrailsのH2データベースでlistAggを使用

私はprodでOracle 11g DBを、開発環境でH2 DBを使用しています。 私は、 "listAgg"関数を使ってhibernateクエリーを持っています。 Oracle上で正常に動作します。 しかし、H2はこの機能をサポートしていません。この機能をH2と併用するにはどうすればよいですか?

私はそれがカスタム方言でできると思います。しかし、私はどのように理解できません。誰でも詳細に説明できますか?

H2にはlistAggに似た 'group_concat'関数があります。 'group_concat'がlistAggではなくH2DBに使用されるようにアプリケーションを構成できますか?

Grails 2.3.11。

ありがとうございます!

答えて

0

LISTAGGは、Oracle固有の機能です。他のデータベースでは使用できません。たとえば、MSSQLの代わりにSTUFF関数を使用することができます。

H2で必要な場合は、OracleでLISTAGGと同じ名前を使用するユーザー定義関数を定義する必要があります。詳細については、http://www.h2database.com/html/features.html#user_defined_functionsを参照してください。

+0

ありがとうございます!しかし、私はgrailsとhibernateで、native SQLではなく、それを使いたいと思っています。 –

+0

これは機能しませんか? https://bhavikablog.wordpress.com/2012/12/07/adding-custom-function-in-hibernate-with-custom-dialects/ – droggo

+0

ListAgg oracle関数の 'within'部分に問題があります。どうすれば定義できますか? –

関連する問題