`
medbricom
  • 浏览: 105036 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

mybatis 报There is no getter for property named 'status' 错误解决方法

阅读更多
配置sql如下:
select id="queryFathernodeResource" parameterType="java.lang.String"
resultType="SysFathernodeResourceModel">
SELECT t.soleid soleId,
t.fathernodename fathernodeName,
t.column_3 column_3,
TO_CHAR(t.createtime,'yyyy-mm-dd hh24:mi:ss')createTime
FROM
t_sys_fathernode_resource t
WHERE 1=1
<if test="roleId!=null and roleId!=''">
AND EXISTS(SELECT t1.resourceid FROM t_sys_role_resource
t1 WHERE
t.soleid=t1.resourceid AND
t1.roleid=#{roleId})
</if>
</select>
dao方法:
public List<SysFathernodeResourceModel> queryFathernodeResource(
String roleId) throws DaoException {
List<SysFathernodeResourceModel> result = null;
try {
result = this.getSqlSession().selectList(
"sysRole.queryFathernodeResource",roleId);
} catch (Exception e) {
throw new DaoException(e);
}
return result;
}

结论:
把if判断标签去掉就可以了,标签是针对JAVABEAN或者MAP的,String不能用标签


详细错误日志:
[PF_ManagerWeb] 2012-08-14 15:02:31 com.ideal.spdb.utils.LogAspect@(LogAspect.java:86)
  INFO :调用异常通知!
org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.reflection.ReflectionException: There is no getter for property named 'status' in 'class java.lang.String'
at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:73)
at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:346)
at $Proxy14.selectList(Unknown Source)
at org.mybatis.spring.SqlSessionTemplate.selectList(SqlSessionTemplate.java:189)
at com.ideal.spdb.application.dao.impl.IApplicationMgrDaoImpl.getNeedTransferApplictionList(IApplicationMgrDaoImpl.java:40)
at com.ideal.spdb.application.dao.impl.IApplicationMgrDaoImpl$$FastClassByCGLIB$$24e42888.invoke(<generated>)
at net.sf.cglib.proxy.MethodProxy.invoke(MethodProxy.java:191)
at org.springframework.aop.framework.Cglib2AopProxy$CglibMethodInvocation.invokeJoinpoint(Cglib2AopProxy.java:692)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:150)
at org.springframework.aop.framework.adapter.MethodBeforeAdviceInterceptor.invoke(MethodBeforeAdviceInterceptor.java:50)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
at org.springframework.aop.aspectj.AspectJAfterThrowingAdvice.invoke(AspectJAfterThrowingAdvice.java:55)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:89)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
at org.springframework.aop.framework.Cglib2AopProxy$DynamicAdvisedInterceptor.intercept(Cglib2AopProxy.java:625)
at com.ideal.spdb.application.dao.impl.IApplicationMgrDaoImpl$$EnhancerByCGLIB$$4b88eab8.getNeedTransferApplictionList(<generated>)
at com.ideal.spdb.test.ApplicationTest.testApplication(ApplicationTest.java:46)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at junit.framework.TestCase.runTest(TestCase.java:154)
at junit.framework.TestCase.runBare(TestCase.java:127)
at junit.framework.TestResult$1.protect(TestResult.java:106)
at junit.framework.TestResult.runProtected(TestResult.java:124)
at junit.framework.TestResult.run(TestResult.java:109)
at junit.framework.TestCase.run(TestCase.java:118)
at junit.framework.TestSuite.runTest(TestSuite.java:208)
at junit.framework.TestSuite.run(TestSuite.java:203)
at org.eclipse.jdt.internal.junit.runner.junit3.JUnit3TestReference.run(JUnit3TestReference.java:130)
at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:467)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:683)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:390)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:197)
Caused by: org.apache.ibatis.reflection.ReflectionException: There is no getter for property named 'status' in 'class java.lang.String'
at org.apache.ibatis.reflection.Reflector.getGetInvoker(Reflector.java:308)
at org.apache.ibatis.reflection.MetaClass.getGetInvoker(MetaClass.java:93)
at org.apache.ibatis.reflection.wrapper.BeanWrapper.getBeanProperty(BeanWrapper.java:131)
at org.apache.ibatis.reflection.wrapper.BeanWrapper.get(BeanWrapper.java:27)
at org.apache.ibatis.reflection.MetaObject.getValue(MetaObject.java:103)
at org.apache.ibatis.builder.xml.dynamic.DynamicContext$ContextMap.get(DynamicContext.java:70)
at org.apache.ibatis.builder.xml.dynamic.DynamicContext$ContextAccessor.getProperty(DynamicContext.java:88)
at org.apache.ibatis.ognl.OgnlRuntime.getProperty(OgnlRuntime.java:1529)
at org.apache.ibatis.ognl.ASTProperty.getValueBody(ASTProperty.java:84)
at org.apache.ibatis.ognl.SimpleNode.evaluateGetValueBody(SimpleNode.java:175)
at org.apache.ibatis.ognl.SimpleNode.getValue(SimpleNode.java:213)
at org.apache.ibatis.ognl.ASTNotEq.getValueBody(ASTNotEq.java:47)
at org.apache.ibatis.ognl.SimpleNode.evaluateGetValueBody(SimpleNode.java:175)
at org.apache.ibatis.ognl.SimpleNode.getValue(SimpleNode.java:213)
at org.apache.ibatis.ognl.ASTAnd.getValueBody(ASTAnd.java:54)
at org.apache.ibatis.ognl.SimpleNode.evaluateGetValueBody(SimpleNode.java:175)
at org.apache.ibatis.ognl.SimpleNode.getValue(SimpleNode.java:213)
at org.apache.ibatis.ognl.Ognl.getValue(Ognl.java:314)
at org.apache.ibatis.ognl.Ognl.getValue(Ognl.java:394)
at org.apache.ibatis.ognl.Ognl.getValue(Ognl.java:435)
at org.apache.ibatis.ognl.Ognl.getValue(Ognl.java:414)
at org.apache.ibatis.builder.xml.dynamic.ExpressionEvaluator.evaluateBoolean(ExpressionEvaluator.java:17)
at org.apache.ibatis.builder.xml.dynamic.IfSqlNode.apply(IfSqlNode.java:15)
at org.apache.ibatis.builder.xml.dynamic.MixedSqlNode.apply(MixedSqlNode.java:14)
at org.apache.ibatis.builder.xml.dynamic.DynamicSqlSource.getBoundSql(DynamicSqlSource.java:22)
at org.apache.ibatis.mapping.MappedStatement.getBoundSql(MappedStatement.java:198)
at org.apache.ibatis.executor.BaseExecutor.createCacheKey(BaseExecutor.java:115)
at org.apache.ibatis.executor.BaseExecutor.query(BaseExecutor.java:90)
at org.apache.ibatis.executor.CachingExecutor.query(CachingExecutor.java:72)
at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:75)
at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:69)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:338)
... 34 more



0
2
分享到:
评论
4 楼 medbricom 2014-06-30  
zhibaichuan 写道
楼主没找到主要原因,其实是实体类的字段大小写和if语句里的字段大小写不一致。

不一致也会导致这个错误,这是肯定的啊,这个我知道啊,我们的讨论的是不用实体类,单用String 用if判断就会报这个错误 并且没办法解决 目前不支持。
3 楼 medbricom 2014-06-30  
不一致也会导致这个错误,这是肯定的啊,这个我知道啊,我们的讨论的是不用实体类,单用String 用if判断就会报这个错误 并且没办法解决 目前不支持。
2 楼 zhibaichuan 2014-04-02  
楼主没找到主要原因,其实是实体类的字段大小写和if语句里的字段大小写不一致。
1 楼 wf_chn 2012-12-06  
把标签去了,那就用不了动态语句了啊,不过还是感谢博主,省了我的时间,已经浪费了一小时了

相关推荐

    Mybatis单个参数的if判断报异常There is no getter for property named 'xxx' in 'class java.lang.Integer'的解决方案

    然而,当遇到单个参数是基本类型如`java.lang.Integer`或`java.lang.String`时,如果按照处理对象类型的参数方式直接在`&lt;if&gt;`中使用参数名,可能会遇到异常`There is no getter for property named 'xxx' in 'class ...

    使用Mybatis遇到的there is no getter异常

    但是,如果setter方法的名称与getter方法的名称不同,Mybatis框架将无法找到对应的getter方法,从而导致了"There is no getter for property"异常。 例如,在Pro1_Studnet实体类中,setter方法的名称是setStuId,而...

    mybatis 分页拦截器及拦截器配置

    MyBatis 分页拦截器是实现数据库查询分页效果的一种高效解决方案。在传统的SQL查询中,我们通常需要手动编写分页语句,但这容易出错且不易维护。通过使用分页拦截器,我们可以将分页逻辑封装起来,使得在编写Mapper...

    支持条件查询的Mybatis分页插件

    Mybatis PageHelper分页插件是一款广泛使用的Java框架,它为Mybatis提供了强大的分页功能。在使用Mybatis进行数据库操作时,分页查询是非常常见且重要的需求,尤其是在处理大量数据时,避免一次性加载所有结果,提高...

    mybatis中foreach报错:_frch_item_0 not found的解决方法

    首先,我们要理解这个错误通常表示MyBatis在尝试访问集合中的元素时,找不到对应的getter方法或属性。以下是一些可能导致此错误的原因: 1. **参数类型不正确**:确保传递给MyBatis的参数是一个`List`或数组。如果...

    learn-mybatis-plus:学习mybatis-plus配置,解决save时乱码,解决mybatis映射时日期格式问题。为什么不用mybatis-plus-boot-starter?配置多数据源时,要让spring-boot不自动注入data-source和sqlSessionFactory。

    常问问题1,出现了如下BUG org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.reflection.ReflectionException: There is no getter for property named 'statement' in 'class ...

    mybatis-generator 字段 getter setter 中文注释

    标题"mybatis-generator 字段 getter setter 中文注释"表明我们将讨论MBG如何生成包含中文注释的getter和setter方法。在Java编程中,getter和setter方法用于访问和修改对象的属性,是面向对象设计的重要组成部分。当...

    mybatis 报空值异常

    ### MyBatis 报空值异常及解决办法 在使用 MyBatis 框架进行数据库操作时,可能会遇到报空值异常的情况。这类问题通常出现在尝试将空值(`null`)插入数据库表中时,尤其是在未指定 JDBC 类型的情况下更为常见。...

    解决mybatis-plus3.1.1版本使用lambda表达式查询报错的方法

    错误日志显示的是一个`MybatisPlusException`,提示“Your property named 'username' cannot find the corresponding database column name!”,这意味着MyBatis-Plus在尝试映射Java对象的属性(如`username`)到...

    mybatis数据类型错误及解决方法

    总结来说,解决MyBatis数据类型错误的方法主要包括: 1. 确保数据库字段类型与Java对象属性类型一致。 2. 在SQL语句中正确使用数据类型,避免类型不兼容的比较。 3. 配置MyBatis的TypeAliases,为自定义Java类型添加...

    Spring+MyBatis scott用户根据 no 查找数据

    而MyBatis则是一个优秀的持久层框架,它解决了SQL与Java代码的耦合问题,让开发者能够自由地编写SQL语句。 在"Spring+MyBatis scott用户根据no查找数据"这个主题中,我们关注的是如何通过Spring的IoC(Inversion of...

    mybatis连接MySQL8出现的问题解决方法

    "mybatis连接MySQL8出现的问题解决方法" MyBatis是当前最流行的持久层框架之一,它提供了一个简单的方式来访问数据库。然而,在使用MyBatis连接MySQL8时,可能会出现一些问题。本文将介绍MyBatis连接MySQL8出现的...

    mybatis乱码的解决方法

    解决MyBatis乱码问题的方法: 1. **检查数据库配置**:确保数据库服务器的字符集设置为支持中文的编码,如UTF-8,并在数据库连接字符串中明确指定字符集。 2. **统一项目编码**:在整个项目中,包括IDE、代码文件...

    free-idea-mybatis2019.12.18.zip

    free-idea-mybatis is an enchange plugin for idea to supoort mybatis,here is the main functions: generate mapper xml files navigate from the code to mapper and from the mapper back to code auto code...

    MyBatis整合中项目出现406错误解决方法

    MyBatis整合中项目出现406错误解决方法

    mybatis_eclipse_插件

    同时,插件提供的错误检查和快速修复功能,也能帮助开发者及时发现并解决问题。 总之,MyBatis Eclipse 插件是MyBatis开发中的得力助手,无论你是初学者还是资深开发者,都能从中受益。通过这份资料,你可以深入...

    mybatisX for idea.zip

    MybatisX是一款为Java开发人员设计的Mybatis插件,专为IntelliJ IDEA集成开发环境(IDEA)提供便利。这款插件的原版名为"MybatisX-idea.0.1.0.jar",旨在提升Mybatis框架的开发效率。在本篇文章中,我们将深入探讨...

    引入mybatis-plus报 Invalid bound statement错误问题的解决方法

    "引入mybatis-plus报Invalid bound statement错误问题的解决方法" Mybatis-Plus是一个基于Mybatis的增强工具,旨在简化开发效率。然而,在使用Mybatis-Plus时,可能会遇到各种问题,例如Invalid bound statement...

    mybatis根据property获取column

    标题 "mybatis根据property获取column" 指的是在MyBatis框架中,如何通过对象的属性名(property)来获取对应的数据库列名(column)。这通常涉及到MyBatis的映射机制,包括XML配置文件和Java注解的使用。在MyBatis...

    mybatis-3-config/mapper.dtd 解决mybatis头文件报错

    解决mybatis头文件报错 下载好压缩包 解压将文件放到本地文件夹 例如 D盘的哪个文件夹 D:\mybatis\ ;然后打开eclipse -&gt;Window-&gt;prefenrence-&gt;XML-&gt;XML Catalog-&gt;User Specifiled Entreis-&gt;Add-&gt;Location(此处是你...

Global site tag (gtag.js) - Google Analytics