Mybatis报错There is no getter for property named 'cg_id' in 'class com.st.eleventh.tools.Page'

mybatis报错:HTTP Status 500 - 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 'cg_id' in 'class com.st.eleventh.tools.Page'

经过排错发现是在mapper.xml那里写错了。

分析:出现这个错误是在mapper.xml中的<if test="cg_id !=null and cg_id!='' ">验证的时候发生的,并不是and cg_id=#{cg_id}时发生的

<select id="resultSets" resultMap="BaseResultMap"
		parameterType="java.util.Map">
		select
		<include refid="Base_Column_List" />
		from t_space
		<where>
		<if test="cg_id !=null and cg_id!='' ">
			and cg_id=#{cg_id}
		</if>
		</where>
	</select>

解决方法:由于我使用了一个分页插件:它对分页的数据进行了封装

/** 
 * 对分页的基本数据进行一个简单的封装 
 */  
public class Page<T> {  
   
    private int pageNo = 1;//页码,默认是第一页  
    private int pageSize =18;//每页显示的记录数,默认是20  
    private int totalRecord;//总记录数  
    private int totalPage;//总页数  
    private List<T> results;//对应的当前页记录  
    private Map<String, Object> params = new HashMap<String, Object>();//其他的参数我们把它分装成一个Map对象  

控制器:

@RequestMapping("/lists")
	public String list(HttpServletRequest req,Page<Space>page,String cg_id) {
		if(page==null) {
			page=new Page<Space>();
		}
		page.getParams().put("cg_id", cg_id);
		req.getServletContext().setAttribute("parkSet", parkingService.selectAll());
		req.setAttribute("cg_id", cg_id);
		req.setAttribute("resultSet", spaceService.resultSets(page));
		return "park/listSpace";
	}
	

所以在mapper.xml中要这样写:

<select id="resultSets" resultMap="BaseResultMap"
		parameterType="java.util.Map">
		select
		<include refid="Base_Column_List" />
		from t_space
		<where>
		<if test="params.cg_id !=null and params.cg_id!='' ">
			and cg_id=#{params.cg_id}
		</if>
		</where>
	</select>

最后再进行测试,没有错误。

 

我的座右铭:不会,我可以学;落后,我可以追赶;跌倒,我可以站起来;我一定行。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

灰太狼_cxh

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值