控制台错误:
严重: Servlet.service() for servlet [bigaoread] in context with path [] threw exception [Request processing failed; nested exception is org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.reflection.ReflectionException: There is no getter for property named 'fieldName' in 'class java.lang.String'] with root cause
org.apache.ibatis.reflection.ReflectionException: There is no getter for property named 'fieldName' 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)
这个错误是因为在mybatis的xml文件中的sql入参为string,然后引起的。
dao层:
List<YzActivecontrol> getFieldDistinct(String fieldName);
mybatis的sql文件:
<select id="getFieldDistinct" resultType="YzActivecontrol" parameterType="string" >
SELECT DISTINCT
${fieldName}
FROM <include refid="tableName"/>
</select>
应该将mybatis的sql文件中 ${fieldName} 修改为 ${_parameter}。
无论dao层接口中的那个入参名称是什么,在mybatis中只能使用 _parameter 来获取。
正确sql:
<select id="getFieldDistinct" resultType="YzActivecontrol" parameterType="string" >
SELECT DISTINCT
${_parameter}
FROM <include refid="tableName"/>
</select>