当前位置: 首页 > 知识库问答 >
问题:

用于处理空参数值的JPA查询

庾兴发
2023-03-14

我是JPA新手,这里是我的一个查询,我有几个参数作为查询的一部分,任何参数都可以是空值

@Query(value = "SELECT ord.purchaseOrderNumber,ord.salesOrderNumber,ord.quoteNumber"

            + " FROM Order ord WHERE ord.purchaseOrderNumber LIKE :poNumber%  "
            + " AND ord.salesOrderNumber LIKE :soNumber "
            + " AND ord.quoteNumber = :quoteNumber "

共有1个答案

籍英叡
2023-03-14

您可以添加一组条件来“忽略”具有空值或空字符串的属性。

例如。

+ " AND (ord.quoteNumber = :quoteNumber or :quoteNumber is null or :quoteNumber = '' ")
 类似资料:
  • 我在JPA repository类中编写了一个查询,如下所示: 上述查询的问题是,如果参数:和都为空,则需要获取所有记录,而这不会发生。到目前为止,没有获取任何记录。 基本上,我希望编写的查询能够正确地适用于所有情况,即参数和都采用空值和非空值。 在这方面,我已经了解了CriteriaBuilder的概念,但无法正确掌握该概念以实现我的案例。 有人能帮忙吗?谢谢 编辑 我已经在控制台中记录了查询,

  • 我想向namedquery传递两个参数。一种是数字型,另一种是字符串型。它们都可以为空。 例如,(id=null, username='joe')和(id=1, username='joe')是两个不同的结果。在namedQuery中,如果id为null,语法为“u.idis null”,但如果id不为null,语法为“u.id=: id”。我的问题是如何动态处理namedQuery中提交的id?

  • 我可以查询以检索 然后,我可以查询表以获得作业执行的全部详细信息。

  • 我使用从我的mysql数据库添加节点到。 我的问题是记录中的某些列值可能为null。我如何在cypher查询中处理它们,因为对于mysql表中的null值,它没有创建任何节点。 下面是我使用neo4j java驱动程序创建节点的代码 在neo4j浏览器控制台中,当我在cypher下面运行查询时,没有形成任何节点。 更新:我能够在Java处理空值。但是对于另一张桌子,我有一些奇怪的行为。 在Neo4

  • 问题内容: 我正在使用JPA,hibernate3。 当没有空值或空值时,此查询就像一个超级按钮。但是 traceEntityVO.getLotNumber(),traceEntityVO.getMfrLocId(),traceEntityVO.getExpDate()的 值可能为null或为空 。 在这种情况下,将针对变量而不是 null 条件来检查值’null’或’‘ 。当我不确定参数值是否为

  • 问题内容: 在(REST)Web服务中处理OLE的正确模式是什么?例如,这就是我现在正在做的 每当您在代码中看到睡眠时,很可能这是不正确的。有没有更好的方法来解决这个问题? 另一种方法是立即将故障发送回客户端,但我宁愿不要让他们为此担心。正确的事情似乎可以完成使请求在服务器上成功执行的所有操作,即使它需要一段时间。 谢谢。 问题答案: 如果收到乐观的锁定异常,则意味着其他某个事务已将更改 提交 给