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);
}
浙公网安备 33010602011771号