¿Cómo manejar si el parámetro de consulta es nulo o está vacío en hibernación?

Estoy usando 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());

Esta consulta funciona como un encanto cuando no había valores vacíos o nulos. Pero podría haber un valor nulo o vacío paratraceEntityVO.getLotNumber (), traceEntityVO.getMfrLocId (), traceEntityVO.getExpDate ().

En este caso, el valor 'nulo' o '' se compara con la variable en lugar dees nulo condición. ¿Cómo manejo cuando no estoy seguro sobre el valor del parámetro, ya sea nulo o vacío?

No quiero construir la consulta dinámicamente en función de los valores si está vacío o nulo.

es posible?

Gracias por adelantado..

Respuestas a la pregunta(2)

Su respuesta a la pregunta