Mybatis使用PageHelper出现 There is no getter for property named '__frch_criterion_1' in 'class错误解决方法

Mybatis PageHelper报错解决方法
在使用Mybatis PageHelper插件进行分页查询时,如果查询条件带参数,可能会遇到‘There is no getter for property named’的错误。这可能是由于Mybatis的一个Bug导致的。解决方法是在mapper接口的方法参数前添加@Param("example")注解,并在mapper.xml文件中正确引用example,同时更新查询语句中的条件判断。

用mybatis插件自动生成的example查询分页,不带条件时可以成功,带条件会报错There is no getter for property named '__frch_criterion_1' in 'class  xxx。

这应该是mybatis的一个Bug。

解决方法:

在mapper接口文件中在方法参数前加上@Param("example")

  List<TbContent> selectByExampleWithBLOBs(@Param("example") TbContentExample example);

  List<TbContent> selectByExample(@Param("example") TbContentExample example);

 

然后在mapper.xml文件中and ${criterion.condition}前加上example

  <sql id="Example_Where_Clause" >
    <where >
      <foreach collection="example.oredCriteria" item="criteria" separator="or" >
        <if test="criteria.valid" >
          <trim prefix="(" suffix=")" prefixOverrides="and" >
            <foreach collection="criteria.criteria" item="criterion" >
              <choose >
                <when test="criterion.noValue" >
                  example and ${criterion.condition}  (在and前加上example)
                </when>
                <when test="criterion.singleValue" >
                  and ${criterion.condition} #{criterion.value}
                </when>
                <when test="criterion.betweenValue" >
                  and ${criterion.condition} #{criterion.value} and #{criterion.secondValue}
                </when>
                <when test="criterion.listValue" >
                  and ${criterion.condition}
                  <foreach collection="criterion.value" item="listItem" open="(" close=")" separator="," >
                    #{listItem}
                  </foreach>
                </when>
              </choose>
            </foreach>
          </trim>
        </if>
      </foreach>
    </where>
  </sql>

最后在查询语句中 <if test="distinct" > ,<if test="orderByClause != null" >改为 <if test="example.distinct" > ,<if test="example.orderByClause != null" >

<select id="selectByExampleWithBLOBs" resultMap="ResultMapWithBLOBs" parameterType="com.taotao.pojo.TbContentExample" >
    select
    <if test="example.distinct" > (distinct前加上example.)
      distinct
    </if>
    <include refid="Base_Column_List" />
    ,
    <include refid="Blob_Column_List" />
    from tb_content
    <if test="_parameter != null" >
      <include refid="Example_Where_Clause" />
    </if>
    <if test="example.orderByClause != null" >  (orderByClause前加上example.)
      order by ${orderByClause}
    </if>
  </select>

 

评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值