【发布时间】:2021-08-05 00:06:54
【问题描述】:
LE:我最初认为这与 JPQL 查询有关 - 请参见下文。
我正在努力解决一个问题,但我似乎找不到任何解决方案。我正在尝试在数据库中查找用户。搜索条件是用户名或电子邮件地址。用户可能没有用户名,所以我总是在我的CrudRepository 中获得NullPointerException。我已经尝试过 JPQL 和原生查询,但我总是得到相同的结果。
我可以在 MySQL Workbench 中成功运行本机查询 - 在 Java 中它会引发异常。
这是我使用本机查询时的存储库:
@Query(value = "select * from users u where " +
"(u.username is not null and u.username = :queryString) or " +
"(u.email_address is not null and u.email_address = :queryString)",
nativeQuery = true)
Optional<User> findByEmailAddressOrUsername(@Param("queryString") String queryString);
还有 JPQL:
@Query("select u from user u where " +
"(u.emailAddress is not null and u.emailAddress = ?1) or " +
"(u.username is not null and u.username = ?1)")
Optional<User> findByEmailAddressOrUsername(String queryString);
有什么建议吗?
非常感谢。
【问题讨论】:
-
您应该将异常堆栈跟踪附加到您的问题中
标签: java spring jpa spring-data jpql