求助 java.lang.NoSuchMethodError

[复制链接]
查看11 | 回复6 | 2021-1-27 06:48:26 | 显示全部楼层 |阅读模式
利用springboot+jpa为何找不到repository里的方法
java.lang.NoSuchMethodError:com.yanshang.repository.UserRepository.getuserbyroleid(Ljava/lang/Integer;)Ljava/util/List;
atcom.yanshang.service.impl.UserServiceImpl.findrolebyroleid(UserServiceImpl.java:97)~[classes/:na]
atcom.yanshang.controller.admin.CustomerAdminController.list(CustomerAdminController.java:54)~[classes/:na]
atcom.yanshang.controller.admin.CustomerAdminController$$FastClassBySpringCGLIB$$8474a11e.invoke()~[classes/:na]
atorg.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:204)~[spring-core-5.0.8.RELEASE.jar:5.0.8.RELEASE]
atorg.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:746)~[spring-aop-5.0.8.RELEASE.jar:5.0.8.RELEASE]
我的代码如下
publicinterfaceUserRepositoryextendsJpaRepository[U],JpaSpecificationExecutor[U]{
/**
*根据用户名查找用户实体
*@paramuserName
*@return
*/
@Query(value="select*fromt_userwhereuser_name=?1",nativeQuery=true)
publicUserfindByUserName(StringuserName);
//查询拥有经纪商角色的所有人
@Query(value="select*fromt_userwhereidin(selectuser_idfromt_user_rolewhererole_id=?1)",nativeQuery=true)
publicList[U]getuserbyroleid(Integerid);
service层:
@Override
publicList[U]findrolebyroleid(Integerid){
//TODOAuto-generatedmethodstub
returnuserRepository.getuserbyroleid(id);
}

分 -->
回复

使用道具 举报

千问 | 2021-1-27 06:48:26 | 显示全部楼层
有可能是参数不对。
报错中Ljava/lang/Integer是字符串数组,你的方法里是Integer
回复

使用道具 举报

千问 | 2021-1-27 06:48:26 | 显示全部楼层
代码编译没有报错,只有在运行了的时候报错吗
回复

使用道具 举报

千问 | 2021-1-27 06:48:26 | 显示全部楼层
是的运行报错了
回复

使用道具 举报

千问 | 2021-1-27 06:48:26 | 显示全部楼层
引用1楼nayi_224的回复:有可能是参数不对。
报错中Ljava/lang/Integer是字符串数组,你的方法里是Integer

好像百度里也有在@query中用in传的参数必须是list
回复

使用道具 举报

千问 | 2021-1-27 06:48:26 | 显示全部楼层
换成list也报错的..
回复

使用道具 举报

千问 | 2021-1-27 06:48:26 | 显示全部楼层
我已经遇到这样的情况是,项目用的jdk1.7,但是我电脑配置的1.8.导致了这样的错误
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行