2
我使用QueryDSL構建查詢。結果必須注入一個對象內。第一列是groupBy,第二列是值,第三列是常數。讓QueryDSL的構造函數使用常量而不是參數
常數是一個問題,因爲QueryDSL要使它成爲一個參數,從而導致這個錯誤從休眠:「1」
org.hibernate.QueryException:
Parameters are only supported in SELECT clauses when used as part of a INSERT INTO DML statement
[select event.datetime, count(event), ?1]
上面應該直接常量字符串「TOTAL」。
這裏是我的代碼:
final Expression<String> TOTAL = Expressions.constant("total");
final StringExpression date = Expressions.stringTemplate("DATE_FORMAT({0},'%Y-%m-%d')", event.datetime);
query.select(Projections.constructor(Stat2DGraphDto.class, date, event.count(), TOTAL))
query.from(event).groupBy(date);
query.fetch();
如果我從構造函數中刪除TOTAL,它按預期工作,但我需要這個常量後,製備UNION。
我可以強制QueryDSL發送字符串嗎?