如果在hibernate中查询参数为null或为空,如何处理?

Pra*_*hap 8 java hibernate jpa

我正在使用JPA,hibernate 3.

String sqlQuery = " FROM TraceEntityVO  where lotNumber =:lotNumber and mfrLocId=:mfrLocId and mfrDate=:mfrDate and qtyInitial=:qtyInitial and expDate=:expDate";
Query query = entityManager.createQuery(sqlQuery)
                .setParameter("lotNumber", traceEntityVO.getLotNumber())
                .setParameter("mfrLocId", traceEntityVO.getMfrLocId())
                .setParameter("mfrDate", traceEntityVO.getMfrDate())
                .setParameter("qtyInitial", traceEntityVO.getQtyInitial())
                .setParameter("expDate", traceEntityVO.getExpDate());
Run Code Online (Sandbox Code Playgroud)

当没有空值或空值时,此查询就像一个魅力.但是traceEntityVO.getLotNumber(),traceEntityVO.getMfrLocId(),traceEntityVO.getExpDate()可能有null或空值.

在这种情况下,将针对变量检查值'null'或'',而不是null条件.当我不确定参数值时,如何处理null或空?

我不想基于值(如果为空或null)动态构造查询.

这可能吗?

提前致谢..

Fla*_*vio 3

我认为如果没有动态查询,你真的无法做到这一点。

然而,使用条件 API ( hibernate ) ( JPA ) 构建这样的查询很容易,您考虑过吗?