gpt4 book ai didi

java - Spring Data JPA - findAllBy 查询检查是否为空?

转载 作者:行者123 更新时间:2023-11-30 21:49:02 25 4
gpt4 key购买 nike

The documentation显示 findByLastnameAndFirstname 等于 where x.lastname = ?1 and x.firstname = ?2

我们知道在sql中= NULL总是false。您必须使用 IS NULL

假设我们有一个条目 firstname = "First"lastname IS NULL。我称之为 findByLastnameAndFirstname(null, "First")。我想它会返回空结果,因为 = NULL 总是错误的。然而,根据我的测试,它返回了条目。

为什么? Spring Data JPA 是否在内部神奇地做了一些事情?

如果我必须为此编写一个自定义查询,它将类似于 :lastname IS NULL and lastname IS NULL 或 lastname = :lastname。使用 Spring Data JPA 编写此类自定义查询的更简单方法?

最佳答案

这个查询总是返回一个List。如果没有结果,这个列表是一个列表(在 Hibernate 中,如果你返回一个 SingleResult 而不是 ResultList 然后 Hibernate 抛出 NoResultException)。

在您的情况下,我猜想使用 findByLastnameIsNullAndFirstname(String firstname)

关于java - Spring Data JPA - findAllBy 查询检查是否为空?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48084193/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com