myBatis 异常

当 mybatis xml 配置文件传入只有一个参数时,在 if 判断语句 写入 mapper对应的参数时 汇报异常

org.apache.ibatis.reflection.ReflectionException: There is no getter for property named 'mainId' in 'class java.lang.Long'
at org.apache.ibatis.reflection.Reflector.getGetInvoker(Reflector.java:419)
at org.apache.ibatis.reflection.MetaClass.getGetInvoker(MetaClass.java:164)
at org.apache.ibatis.reflection.wrapper.BeanWrapper.getBeanProperty(BeanWrapper.java:162)
at org.apache.ibatis.reflection.wrapper.BeanWrapper.get(BeanWrapper.java:49)
at org.apache.ibatis.reflection.MetaObject.getValue(MetaObject.java:122)
at org.apache.ibatis.scripting.xmltags.DynamicContext$ContextMap.get(DynamicContext.java:94)
at org.apache.ibatis.scripting.xmltags.DynamicContext$ContextAccessor.getProperty(DynamicContext.java:108)
at org.apache.ibatis.ognl.OgnlRuntime.getProperty(OgnlRuntime.java:2671)
at org.apache.ibatis.ognl.ASTProperty.getValueBody(ASTProperty.java:114)
at org.apache.ibatis.ognl.SimpleNode.evaluateGetValueBody(SimpleNode.java:212)
at org.apache.ibatis.ognl.SimpleNode.getValue(SimpleNode.java:258)
at org.apache.ibatis.ognl.ASTNotEq.getValueBody(ASTNotEq.java:50)
at org.apache.ibatis.ognl.SimpleNode.evaluateGetValueBody(SimpleNode.java:212)
at org.apache.ibatis.ognl.SimpleNode.getValue(SimpleNode.java:258)
at org.apache.ibatis.ognl.Ognl.getValue(Ognl.java:470)
at org.apache.ibatis.ognl.Ognl.getValue(Ognl.java:434)
at org.apache.ibatis.scripting.xmltags.OgnlCache.getValue(OgnlCache.java:44)
at org.apache.ibatis.scripting.xmltags.ExpressionEvaluator.evaluateBoolean(ExpressionEvaluator.java:32)
at org.apache.ibatis.scripting.xmltags.IfSqlNode.apply(IfSqlNode.java:34)

我们都知道在mapper 方法接口中如果只有一个参数 可以不用写 @Param注解

这时有两种解决方法

1. 在xml 配置文件中 写

<select id="selectTrailByMainId" resultType="com.dayoo.pywm.model.FeeLogEntity">
		SELECT * FROM tb_fee_log WHERE 1=1
		<if test="_parameter!=null">
			AND
			mainId=#{mainId} </if>
ORDER BY crtTime </select>

  对应的mapper方法

package com.dayoo.pywm.mapper;

import java.util.List;

import org.apache.ibatis.annotations.Param;

import com.baomidou.mybatisplus.mapper.BaseMapper;
import com.dayoo.pywm.model.FeeLogEntity;

public interface FeeLogMapper extends BaseMapper<FeeLogEntity> {
	
	public List<FeeLogEntity> selectTrailByMainId(Long mainId);
}

  或者

<select id="selectTrailByMainId" resultType="com.dayoo.pywm.model.FeeLogEntity">
		SELECT * FROM tb_fee_log WHERE 1=1
		<if test="mainId!=null">
			AND
			mainId=#{mainId}
		</if>
		ORDER BY crtTime 
	</select>

  对应的mapper

package com.dayoo.pywm.mapper;

import java.util.List;

import org.apache.ibatis.annotations.Param;

import com.baomidou.mybatisplus.mapper.BaseMapper;
import com.dayoo.pywm.model.FeeLogEntity;

public interface FeeLogMapper extends BaseMapper<FeeLogEntity> {

	public List<FeeLogEntity> selectTrailByMainId(@Param("mainId")Long mainId);
}

  

posted on 2018-04-08 15:22  东方之日  阅读(237)  评论(0)    收藏  举报