微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

带有@Param空参数的JPA仍然抛出错误

如何解决带有@Param空参数的JPA仍然抛出错误

在这里阅读了许多有关JPA处理空参数的帖子。

许多解决方案都使用本机查询提供了以下解决方法,请参见:https://www.baeldung.com/spring-data-jpa-null-parameters

@Query("SELECT c FROM Customer c WHERE (:name is null or c.name = :name) and (:email is null or c.email = :email)")
List<Customer> findCustomerByNameAndEmail(@Param("name") String name,@Param("email") String email);

但是,在我的情况下这仍然无法正常运行,在运行测试时出现以下错误

java.lang.IllegalArgumentException: Parameter of type String at index 0 in customer.name must not be null!

实体/仓库中是否有需要配置的东西,以防止抛出非法的args。期望的结果将是“忽略”空值,并且在这种情况下只需将一切返回给我。

我知道以下情况:https://jira.spring.io/browse/DATAJPA-209仍未解决

解决方法

请尝试添加可空注释-

@Query("SELECT c FROM Customer c WHERE (:name is null or c.name = :name) and (:email is null or c.email = :email)")
List<Customer> findCustomerByNameAndEmail(@Nullable @Param("name") String name,@Nullable @Param("email") String email);

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。