仅vim开发时 SpringBoot 中,Mybatis sql查询数据正常,但是返回的对象为Null

仅适用于使用vim开发时出现的问题

 

直接查对象可以查到log输出也正常,但是返回的list里只有长度没有数据

==>  Preparing: SELECT id,username,nickname,gender,password,dept_id,avatar,mobile,status,email,create_time,create_by,update_time,update_by,is_deleted FROM sys_user
==> Parameters: 
<==    Columns: id, username, nickname, gender, password, dept_id, avatar, mobile, status, email, create_time, create_by, update_time, update_by, is_deleted
<==        Row: 1, root, XXX, 0, $2a$10$xVWsNOhHrCxh5UbpCE7/HuJ.PAOKcYAqRxD2CO2nVnJS.IAXkr5aq, null, https://foruda.gitee.com/images/1723603502796844527/03cdca2a_716974.gif, 18866668888, 1, youlaitech@163.com, null, null, null, null, 0
<==        Row: 2, admin, 系统管理员, 1, $2a$10$xVWsNOhHrCxh5UbpCE7/HuJ.PAOKcYAqRxD2CO2nVnJS.IAXkr5aq, 1, https://foruda.gitee.com/images/1723603502796844527/03cdca2a_716974.gif, 18866668887, 1, , 2025-04-29 13:30:25, null, 2025-04-29 13:30:25, null, 0
<==        Row: 3, websocket, 测试小用户, 1, $2a$10$xVWsNOhHrCxh5UbpCE7/HuJ.PAOKcYAqRxD2CO2nVnJS.IAXkr5aq, 3, https://foruda.gitee.com/images/1723603502796844527/03cdca2a_716974.gif, 18866668886, 1, youlaitech@163.com, 2025-04-29 13:30:25, null, 2025-04-29 13:30:25, null, 0
<==      Total: 3

查询单个对象时会直接报错

java.lang.IllegalArgumentException: Name for argument of type [java.lang.Long] not specified, and parameter name information not available via reflection. Ensure that the compiler uses the '-parameters' flag.
    at org.springframework.web.method.annotation.AbstractNamedValueMethodArgumentResolver.updateNamedValueInfo(AbstractNamedValueMethodArgumentResolver.java:186) ~[spring-web-6.2.6.jar:6.2.6]
    at org.springframework.web.method.annotation.AbstractNamedValueMethodArgumentResolver.getNamedValueInfo(AbstractNamedValueMethodArgumentResolver.java:161) ~[spring-web-6.2.6.jar:6.2.6]
    at org.springframework.web.method.annotation.AbstractNamedValueMethodArgumentResolver.resolveArgument(AbstractNamedValueMethodArgumentResolver.java:107) ~[spring-web-6.2.6.jar:6.2.6]
    at org.springframework.web.method.support.HandlerMethodArgumentResolverComposite.resolveArgument(HandlerMethodArgumentResolverComposite.java:122) ~[spring-web-6.2.6.jar:6.2.6]
    at org.springframework.web.method.support.InvocableHandlerMethod.getMethodArgumentValues(InvocableHandlerMethod.java:227) ~[spring-web-6.2.6.jar:6.2.6]
    at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:181) ~[spring-web-6.2.6.jar:6.2.6]
    at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:118) ~[spring-webmvc-6.2.6.jar:6.2.6]
    at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:986) ~[spring-webmvc-6.2.6.jar:6.2.6]
    at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:891) ~[spring-webmvc-6.2.6.jar:6.2.6]
    at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87) ~[spring-webmvc-6.2.6.jar:6.2.6]
    at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1089) ~[spring-webmvc-6.2.6.jar:6.2.6]
    at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:979) ~[spring-webmvc-6.2.6.jar:6.2.6]
   .............................

 

并且其他配置一切正常,但是就是无法获取到数据

 

查了很多文章,都说是配置问题,但是我反复确认自己的配置没有问题,后来发现是因为lombok的毛病。lombok和其他包不同,不是在pom中导入了就可以正常使用,你可以正常写,language server 也能获取到一些相关包和注解,但是编译后就不正常。通常情况下lombok是需要IDE的,所以直接使用vim会导致报错,会出现找不到包等等错误,需要配置文件指定lombok

我用的是coc.vim所以直接修改CocConfig。在java.jdt.ls.vmargs里添加lombok的位置并添加"java.jdt.ls.lombokSupport.enabled": true配置启用lombok

-javaagent:\"...~/.config/coc/extensions/coc-java-data/server/lombok-1.18.38.jar\"
"java.jdt.ls.lombokSupport.enabled": true

如果你的lombok位置不在coc插件目录下需要改成你自己的路径,这里lombok在下载后建议把名字加上版本号,否则启动的时候可能会出现找不到版本的报错

参考 https://github.com/neoclide/coc-java/issues/27

 

coc 也可以下载coc-lombok 但是我试了一下效果不太好,而且coc-lombok在github上看确实是很长时间没有更新过了

 

posted @ 2025-04-30 22:17  公卿  阅读(19)  评论(0)    收藏  举报