reko_3 发表于 2017-12-24 14:50:26

Caused by: org.apache.ibatis.reflection.ReflectionException: There is no getter

  

Caused by: org.apache.ibatis.reflection.ReflectionException: There is no getter for property named 'company' in 'class java.lang.String'  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.ASTNotEq.getValueBody(ASTNotEq.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.Ognl.getValue(Ognl.java:
333)  at org.apache.ibatis.ognl.Ognl.getValue(Ognl.java:
413)  at org.apache.ibatis.ognl.Ognl.getValue(Ognl.java:
395)  at org.apache.ibatis.scripting.xmltags.OgnlCache.getValue(OgnlCache.java:
48)  at org.apache.ibatis.scripting.xmltags.ExpressionEvaluator.evaluateBoolean(ExpressionEvaluator.java:
32)  at org.apache.ibatis.scripting.xmltags.IfSqlNode.apply(IfSqlNode.java:
33)  at org.apache.ibatis.scripting.xmltags.MixedSqlNode.apply(MixedSqlNode.java:
32)  at org.apache.ibatis.scripting.xmltags.TrimSqlNode.apply(TrimSqlNode.java:
54)  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.BaseExecutor.query(BaseExecutor.java:
118)  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.apache.ibatis.plugin.Invocation.proceed(Invocation.java:
49)  at com.chinamobile.sias.core.orm.pagination.interceptor.PaginationInterceptor.intercept(PaginationInterceptor.java:
90)  at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:
60)  at com.sun.proxy.$Proxy82.query(Unknown Source)
  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)  ...
28 more  

  Spring+Mybatis框架
  mapper.xml中用到了<where><if>标签判断,出现了上述错误
  

<select>select * from t_view_workorder<where>  <if test="company != '全国'">
  wo_company = #{company}
  </if>
  </where>
  
</select>
  

  mapper.java中代码如下
  

List<Workorder> getOrderByCompany(String company);  

  解决方法
  在参数前加@Param标签
  

List<Workorder> getOrderByCompany(@Param("company")String company);  

  OK!
页: [1]
查看完整版本: Caused by: org.apache.ibatis.reflection.ReflectionException: There is no getter