使用SpringBoot+Dubbo时,sql无误的情况下出现空指针异常
最近做项目使用springboot+dubbo,里面的坑是真的不少。
两次空指针异常让我很难受,特别是刚开始遇到的时候。
首先,确保sql语句是没有问题的,mapper里的映射关系是没问题的,然后逐层排查,然后终于发现了问题:sql语句在数据库中能够查到数据,在mapper中也能查到数据
可是!!!
在Service却突然变成了空的!!!
?????
回想一下第一次遇到这种情况的时候,我的sql是这样的:
映射关系没有问题,sql在数据库以及mapper都能查询到数据,就是到service空了。。。
搞了好久,同组开发的告诉我,在 要查询的字段后加上别名,就像这样:
然后果然没问题了。可能因为这个mapper中的映射是Broadcast,而Teacher只是Broadcast的属性,如果想要使用Teacher的实体类作为返回结果,要单独给Teacher在写一个映射,不过这样太麻烦了,还不如直接加别名。
我以为这个坑已经过去,然而。。。
又来???!!!
这一次,我又搞了很久。。。终于发现,把别名去掉就好了。。。。
为什么???!!!
我明白了,因为第一次我只是查询了一张表,返回类型使用的是resultType。而这次联合查询,返回类型使用的是resultMap,Broadcast实体类中的所有属性都被映射了,所以我不需要再去写别名了
希望我以后不会有这种情况的空指针后续。。。