使用QueryDsl中的SQLExpression

时间:2017-04-12 08:44:05

标签: java sql querydsl

我想使用QueryDsl中的SQLExpressions。我有一个名为qMyClass的Q对象。现在我想使用oracle数据库的listagg函数。因此,我想初始化一个WithinGroup对象。

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

第一部分

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

已经给我错误了:

  

运算符LISTAGG和args的未知操作   [myClass.attributeName,/]

有谁知道如何使用listagg?没有在网上找到任何有用的信息。我使用的是QueryDsl的4.0.2版。谢谢!

1 个答案:

答案 0 :(得分:0)

尝试这样的事情:

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