spring数据jpa-findallby查询检查空值?

i2byvkas  于 2021-06-21  发布在  Mysql
关注(0)|答案(1)|浏览(626)

文件显示 findByLastnameAndFirstname 等于 where x.lastname = ?1 and x.firstname = ?2 .
在sql中我们知道这一点 = NULL 总是假的。你必须使用 IS NULL .
假设我们有一个条目 firstname = "First" 以及 lastname IS NULL . 我称之为 findByLastnameAndFirstname(null, "First") . 我想它会返回空结果,因为 = NULL 总是假的。然而,从我的测试,它返回了条目。
为什么?springdatajpa在内部做了什么神奇的事情吗?
如果我必须为此编写一个自定义查询,它将类似于 :lastname IS NULL and lastname IS NULL or lastname = :lastname . 用spring数据jpa编写这种定制查询更简单吗?

v1l68za4

v1l68za41#

此查询始终返回 List . 如果没有结果,则此列表为空列表(在hibernate中,如果返回 SingleResult 不是 ResultList 然后hibernate抛出 NoResultException ).
在你的情况下,我想使用 findByLastnameIsNullAndFirstname(String firstname) .

相关问题