Spring使用MyBatis自动生成器配合PageHelper分页报错:There is no getter for property named ‘__frch_criterion_1’ in ‘class xxx
问题原因:
按条件查询时方法有两个两个参数,原先生成的xxxMapper.xml里找不到对应参数
List
解决:
对以上方法改造:
// 旧方法 List<UserVO> selectVOByExample(UserExample example); // 新方法 List<UserVO> selectVOByExampleWithPage(@Param("example") UserExample example);
在mapper.xml里面新增:
/* 在此基础上新增 */ <sql id="Example_Where_Clause" > <where > <foreach collection="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" > and ${criterion.condition} </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> /* 新增代码 */ <!--分页接口--> <sql id="Example_Where_Clause_Alias" > <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" > and ${criterion.condition} </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>
在mapper.xml里面新增:
// 旧sql <select id="selectVOByExample" resultMap="BaseResultMap2" parameterType="com.zwq.ssm.pojo.UserExample" > select user.*,role.alias from user left join role on user.roleId = role.id <if test="_parameter != null" > <include refid="Example_Where_Clause" /> </if> <if test="orderByClause != null" > order by ${orderByClause} </if> </select> // 新sql <select id="selectVOByExampleWithPage" resultMap="BaseResultMap2" parameterType="com.zwq.ssm.pojo.UserExample" > select user.*,role.alias from user left join role on user.roleId = role.id <if test="_parameter != null" > <include refid="Example_Where_Clause_Alias" /> </if> <if test="example.orderByClause != null" > order by ${example.orderByClause} </if> </select>