【发布时间】:2018-06-13 12:43:12
【问题描述】:
The documentation 表明findByLastnameAndFirstname 等于where x.lastname = ?1 and x.firstname = ?2。
我们知道在sql中= NULL总是假的。你必须使用IS NULL。
假设我们有一个条目firstname = "First" 和lastname IS NULL。我称之为findByLastnameAndFirstname(null, "First")。我想它会给我返回空结果,因为= NULL 总是错误的。但是根据我的测试,它返回了条目。
为什么? Spring Data JPA 是否在内部做了一些神奇的事情?
如果我必须为此编写一个自定义查询,它将类似于:lastname IS NULL and lastname IS NULL or lastname = :lastname。使用 Spring Data JPA 编写此类自定义查询的更简单方法?
【问题讨论】:
-
启用 SQL 日志记录,您将知道正在生成和执行的 SQL 查询。
标签: java mysql hibernate spring-data-jpa jpql