mybaits 报错没有getter或者setter方法

博主使用MyBatis-Plus时遇到问题,模型中无'menu'属性却报错,发现有'isMenu'属性。经查找,MyBatis会对is开头且为Boolean类型的属性单独处理,修改后可正常读取和设置属性,同时提到Spring MVC接收此类参数时get和set方法写法也需注意。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

org.apache.ibatis.reflection.ReflectionException: There is no getter for property named 'menu' in 'class xxxx.Permission'

首先看到这个错误我立马去检查了对应的model.

@TableName("sys_permission")
public class Permission implements Serializable {

	private static final long serialVersionUID = 4368792338865943489L;
	@TableId(value = "id", type = IdType.AUTO)
	private Integer id;
	/** 应用ID */
	@TableField(value = "appId")
	private Integer appId;
	/** 父ID */
	@TableField(value = "parentId")
	private Integer parentId;
	/** 图标 */
	@TableField(value = "icon")
	@JSONField(serialize = false)
	private String icon;
	/** 名称 */
	@TableField(value = "name")
	private String name;
	/** 权限URL */
	@TableField(value = "url")
	@JSONField(serialize = false)
	private String url;
	/** 排序 */
	@TableField(value = "sort")
	private Integer sort = Integer.valueOf(1);
	/** 是否菜单 */
	@TableField(value = "isMenu")
	private Boolean isMenu;
	/** 是否启用 */
	@TableField(value = "isEnable")
	private Boolean isEnable;
	
	public Integer getAppId() {
		return this.appId;
	}

	public void setAppId(Integer appId) {
		this.appId = appId;
	}

	public Integer getParentId() {
		return this.parentId;
	}

	public void setParentId(Integer parentId) {
		this.parentId = parentId;
	}
	
	public String getIcon() {
		return icon;
	}

	public void setIcon(String icon) {
		this.icon = icon;
	}

	public String getName() {
		return this.name;
	}

	public void setName(String name) {
		this.name = name;
	}
	
	public String getUrl() {
		return url;
	}

	public void setUrl(String url) {
		this.url = url;
	}

	public Integer getSort() {
		return this.sort;
	}

	public void setSort(Integer sort) {
		this.sort = sort;
	}

	public Boolean getIsMenu() {
		return this.isMenu;
	}

	public void setIsMenu(Boolean isMenu) {
		this.isMenu = isMenu;
	}

	public Boolean getIsEnable() {
		return this.isEnable;
	}

	public void setIsEnable(Boolean isEnable) {
		this.isEnable = isEnable;
	}
	
	public String getUrlStr() {
		return url;
	}
	
	public String getPermissionIcon() {
		return icon;
	}

	public Integer getpId() {
		return this.parentId;
	}

	public Integer getId()
	{
		return id;
	}

	public void setId(Integer id)
	{
		this.id = id;
	}
}

(说明,我使用了mybatis-plus,模型里的注解都是mybatis-plus的)
什么鬼?我的mode里面根本就没有menu这个属性!!!。但是我我发现了isMenu这个属性,那么问题会不会出在这里呢?

继续百度。。。。。。。。。。。。。。。。。。。。。。。

最后发现
mybatis会将is开头并且是Boolean类型的属性进行单独处理,只要做如下修改

public Boolean getMenu() {
		return this.isMenu;
	}

	public void isMenu(Boolean isMenu) {
		this.isMenu = isMenu;
	}

这样它便能读取和设置对应的属性了,其实在spring mvc中接收is开头并且是Boolean类型的参数也要注意get和set方法的写法。

具体为啥要这样,那得去问歪果仁了。。。。。。。。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值