Mybatis异常:There is no getter for property named '****' in 'class ****'

一、问题描述

启动项目,报异常

org.apache.ibatis.reflection.ReflectionException: There is no getter for property named 'INTEGER' in 'class com.online.education.core.course.domain.CourseQueryDto'
	at org.apache.ibatis.reflection.Reflector.getGetInvoker(Reflector.java:380)
	at org.apache.ibatis.reflection.MetaClass.getGetInvoker(MetaClass.java:170)
	at org.apache.ibatis.reflection.wrapper.BeanWrapper.getBeanProperty(BeanWrapper.java:152)
	at org.apache.ibatis.reflection.wrapper.BeanWrapper.get(BeanWrapper.java:48)
	at org.apache.ibatis.reflection.MetaObject.getValue(MetaObject.java:116)
	at org.apache.ibatis.scripting.xmltags.DynamicContext$ContextMap.get(DynamicContext.java:97)
	at org.apache.ibatis.scripting.xmltags.DynamicContext$ContextAccessor.getProperty(DynamicContext.java:116)
	at org.apache.ibatis.ognl.OgnlRuntime.getProperty(OgnlRuntime.java:1657)
	at org.apache.ibatis.ognl.ASTProperty.getValueBody(ASTProperty.java:92)
	at org.apache.ibatis.ognl.SimpleNode.evaluateGetValueBody(SimpleNode.java:170)
	at org.apache.ibatis.ognl.SimpleNode.getValue(SimpleNode.java:210)
	at org.apache.ibatis.ognl.ASTAssign.getValueBody(ASTAssign.java:49)
	at org.apache.ibatis.ognl.SimpleNode.evaluateGetValueBody(SimpleNode.java:170)
	at org.apache.ibatis.ognl.SimpleNode.getValue(SimpleNode.java:210)
	at org.apache.ibatis.ognl.ASTSequence.getValueBody(ASTSequence.java:55)
	at org.apache.ibatis.ognl.SimpleNode.evaluateGetValueBody(SimpleNode.java:170)
	at org.apache.ibatis.ognl.SimpleNode.getValue(SimpleNode.java:210)
	at org.apache.ibatis.ognl.Ognl.getValue(Ognl.java:333)
	at org.apache.ibatis.ognl.Ognl.getValue(Ognl.java:310)
	at org.apache.ibatis.scripting.xmltags.OgnlCache.getValue(OgnlCache.java:45)
	at org.apache.ibatis.scripting.xmltags.TextSqlNode$BindingTokenParser.handleToken(TextSqlNode.java:64)
	at org.apache.ibatis.parsing.GenericTokenParser.parse(GenericTokenParser.java:53)
	at org.apache.ibatis.scripting.xmltags.TextSqlNode.apply(TextSqlNode.java:41)
	at org.apache.ibatis.scripting.xmltags.MixedSqlNode.apply(MixedSqlNode.java:32)
	at org.apache.ibatis.scripting.xmltags.IfSqlNode.apply(IfSqlNode.java:34)
	at org.apache.ibatis.scripting.xmltags.MixedSqlNode.apply(MixedSqlNode.java:32)
	at org.apache.ibatis.scripting.xmltags.DynamicSqlSource.getBoundSql(DynamicSqlSource.java:40)
	at org.apache.ibatis.mapping.MappedStatement.getBoundSql(MappedStatement.java:278)
	at org.apache.ibatis.executor.CachingExecutor.query(CachingExecutor.java:75)
	at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:108)
	at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:102)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:606)
	at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:358)
	at com.sun.proxy.$Proxy11.selectList(Unknown Source)
	at org.mybatis.spring.SqlSessionTemplate.selectList(SqlSessionTemplate.java:198)
	at org.apache.ibatis.binding.MapperMethod.executeForMany(MapperMethod.java:119)
	at org.apache.ibatis.binding.MapperMethod.execute(MapperMethod.java:63)
	at org.apache.ibatis.binding.MapperProxy.invoke(MapperProxy.java:52)
	at com.sun.proxy.$Proxy16.queryList(Unknown Source)
	at com.online.education.core.course.service.impl.CourseServiceImpl.queryList(CourseServiceImpl.java:52)
	at com.online.education.portal.business.impl.PortalBusinessImpl.prepareRecomdCourses(PortalBusinessImpl.java:87)
	at com.online.education.portal.controller.PortalController.index(PortalController.java:60)

二、解决办法

通过查看日志,问题锁定在以下三行

at com.online.education.core.course.service.impl.CourseServiceImpl.queryList(CourseServiceImpl.java:52)
	at com.online.education.portal.business.impl.PortalBusinessImpl.prepareRecomdCourses(PortalBusinessImpl.java:87)
	at com.online.education.portal.controller.PortalController.index(PortalController.java:60)

基本确定是queryList方法的错误,到mapper中查找对应的方法

1、发现取值写错了

		<if test="start != null and end != null">
           LIMIT ${start, jdbcType=INTEGER} ${end, jdbcType=INTEGER}
        </if>

2、网上以一种问题是参数写成_parameter

		 <if test="username != null">
            and username = #{username} 
        </if>

改成

		 <if test="_parameter != null">
            and username = #{username} 
        </if>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值