我以前在QueryDSL中使用JPAQuery。
现在,我需要使用布尔字段(MySQL中的tinyint(1))使用一些聚合进行查询
这是我的代码 (我已经缩短了要求):
JPAQuery query = new JPAQuery(em);
QMyEntity myEntity = QMyEntity.myEntity;
NumberExpression<Integer> nExprRefused = myEntity.isRefused.castToNum(Integer.class);
NumberExpression<Integer> nExprAccepted = myEntity.isAccepted.castToNum(Integer.class);
return query.from(myEntity)
.groupBy(myEntity.otherField)
.list(Projections.constructor(
MyProjection.class
, nExprAccepted.sum()
, nExprRefused.sum()
, myEntity.otherField)
)
);
问题是演员阵容是这样的:
CAST (t0.isRefused as INTEGER)
所以MySQL抛出错误。
我想要:
CAST (t0.isRefused as SIGNED INTEGER)
......但我不知道该怎么做。
所以,如果有人在这里帮助我找到解决方案,那将非常愉快:)
谢谢!
于连