Spring Data JPA查询结果为空时遇到的问题

遇到的问题

在使用Repository接口时遇到了若findBy方法的查询结果为空时会报空指针异常java.lang.NullPointerException,而查询结果不为空时可以通过测试。

本文首发于我的个人博客 技术公馆(wcc.im)Spring Data JPA查询结果为空时遇到的问题

解决方法

在网上搜索到的使用Repository报空指针异常的原因多是因为注入的问题,没有使用@Autowired,但这并不适用于我遇到的问题。

在确定位置后,发现我的报错出现在findBy方法。最后在官方文档中查到对于Repository中的方法需要专门处理结果为空时的情况。若使结果可为空,需要在方法前加@Nullable注解。

所以只需将

interface UserRepository extends Repository {                 

    User findByName(String name);

}

改为

interface UserRepository extends Repository {                 

    @Nullable
    User findByName(String name);

}

即可。

本文首发于我的个人博客 技术公馆(wcc.im)
原文链接: https://wcc.im/zh/post/empty-result-in-spring-data-jpa/
本博客内文章除特别声明外均为原创,采用 CC BY-NC-SA 4.0 许可协议进行许可。超出 CC BY-NC-SA 4.0 许可协议的使用请联系作者获得授权。

你可能感兴趣的:(spring-data-jpa,java,spring,后端,springboot)