由JPA 的一个错误引起的 java.util.NoSuchElementException: null

程序报:

java.util.NoSuchElementException: null

这是List 的错误,因为使用的JPA,所以首先怀疑是数据库表的字段数量和Java entity 的成员数量不一致。

数了一下,两者的数量是一直的。这种猜想失败。

跟踪到List的代码里,打断点,发现是处理第二个参数的时候,就挂了。这样问题就定位出来了。

    public List<Follow> findByUserUnionId(String unionId) {
        return dao.findByUserUnionId(unionId,0);
    }

调用了的dao的代码:

List<Follow> findByUserUnionId(String userUnionId,Integer delFlag);

正确的应该是:

List<Follow> findByUserUnionIdAndDelFlag(String userUnionId,Integer delFlag);

在编写代码的时候,少了 AndDelFlag , 但参数实际是传了两个,这样在处理的时候就直接报错了。

这个问题比较隐蔽,因为编译是没有任何错误的。运行的时候虽然报了这个错误,但怎么看都没问题。

所以,个人觉得,复杂的情况下,对于JPA 来说,还是使用 @Query 注解比较好,如果出错了,会同时报SQL的错误,这就好定位问题了。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 31,899评论 18 399
  • Spring Boot 参考指南 介绍 转载自:https://www.gitbook.com/book/qbgb...
    毛宇鹏阅读 47,040评论 6 342
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,323评论 19 139
  • 亲密爱人 在六月清冽的河水里 一只水蛇慌张的钻进我的心底 我能听到你急促的呼吸 吐着火红的信...
    肉津津小姐813阅读 2,773评论 0 3
  • 以前的回忆啊。。从高中的毕业照到大学四年,首都航空,全部没了。 因为今天我突然脑抽想要重装一下win系统。重置一下...
    不爱背诵的人阅读 5,186评论 0 0