QueryDSL - 在MySQL中将布尔值转换为数字

时间:2015-07-09 13:10:30

标签: querydsl

我以前在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)

......但我不知道该怎么做。

所以,如果有人在这里帮助我找到解决方案,那将非常愉快:)

谢谢!

于连

0 个答案:

没有答案