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发送字符串吗?