2017-04-12 4 views
0

QueryDslからSQLExpressionsを使用したいと思います。 QMyClassというQオブジェクトがあります。 Oracleデータベースのlistagg機能を使用したいと考えています。したがって、私はWithinGroupオブジェクトを初期化したいと思います。QueryDslからのSQLExpressionの使用

WithinGroup<Object>.OrderBy withinGroup = SQLExpressions.listagg(qMyClass.attributeName, "/").withinGroup().orderBy(qMyClass.attributeName); 

最初の部分

SQLExpressions.listagg(qMyClass.attributeName, "/") 

はすでに私にエラーを与える:

unknown operation with operator LISTAGG and args [myClass.attributeName, /]

誰でもLISTAGGを使用する方法を知っていますか?ウェブ上で有用な情報が見つかりませんでした。私はQueryDslのバージョン4.0.2を使用しています。ありがとう!

答えて

0

はこのような何か試してください:あなたの答えのための

select(
    qMyClass.id, 
    SQLExpressions.listagg(qMyClass.attributeName,"/") 
     .withinGroup() 
     .orderBy(qMyClass.attributeName.asc()) 
     .getValue() 
     .as("foo")) 
    .from(qMyClass) 
    .groupBy(qMyClass.id); 
+0

おかげで、ORDERBYはOrderSpecifierを期待していないので、私はあなたの答えで 'ASCを()'削除する必要がありました。 'getValue()。as(" foo ")は私が知らなかったものです。私は私の質問を変更し、今は 'LISTAGGのパターンが見つかりませんでした。 – Markus

+0

あなたはどのバージョンを使用していますか? – natros

+0

バージョン4.0.2を使用しています – Markus

関連する問題