java - hibernate 中查询参数为 null 或为空时如何处理?

标签 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());

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

在这种情况下,根据变量而不是 is null 条件检查值 'null' 或 ''。当我不确定参数值是 null 还是空时,我该如何处理?

我不想根据值为空或 null 的值动态构建查询。

这可能吗?

提前致谢..

最佳答案

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

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

关于java - hibernate 中查询参数为 null 或为空时如何处理?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11411641/

相关文章:

hibernate - Spring Boot 父子关系

java - 无法在 Hibernate Criteria 中提取 ResultSet

java - 如何通过 Sort 和 Pageable 使用 Spring data JPA 开箱即用地查询数据?

JavaFX 检索 tableView 中拖动列的索引

java - 多线程——共享数据

java - 在 WebSphere Liberty 上工作时的 Spring mvc 多文件上传

java - 构建在 Spring 3 (m3) 上的 REST-fully 注释服务的最小配置是什么?

mysql - Spring Boot : Communications link failure after some hours of inactivity with Hibernate, JDBC 和 MySQL

java - 我们可以使用 JPA QueryDSL 创建一个表吗

spring - @Transactional Annotation + 用于在循环中插入数据