java SQL的ISNULL函数的QueryDSL实现

laik7k3q  于 2023-01-07  发布在  Java
关注(0)|答案(1)|浏览(165)

当SQL函数ISNULL是所选数据的一部分时,是否有方法使用QueryDSL在JPAQuery中编写它?例如,我有一个原生SQL查询:

SELECT ISNULL(date1, date2) AS date_field FROM TABLE..

目前,我看到的唯一选项是在JPAQuery中同时返回date1和date2,然后在Java代码中执行自己的检查,以确定要访问哪个字段,但如果在不需要时返回多个字段,那就更好了。
我想它看起来会是这样的:

return new JPAQuery<ResponseObject>(entityManager)
     .select(Projections.bean(ResponseObject.class, 
             table.date1,
             table.date2))
     .from(table)
     .fetch();

抱歉,我把JPA的某些方面与QueryDSL混淆了,反之亦然。

nbysray5

nbysray51#

您可以简单地使用QueryDSL支持的coalesce,它的工作原理与ISNULL相同
例如:

new Coalesce<>(Date.class)
   .add(qEntity.firstOptional)
   .add(qEntity.secondOptional)

相关问题