最近遇到一个问题非常有意思。大概是我在数据库的某张表里面建了一个boolean字段,比如名称叫做:is_hot 那么在sqlmap的result里面,情况可能会是这样:
[code]<result property="isHot" column="IS_HOT" javaType="BOOLEAN" jdbcType="BIT"/>[/code]
我习惯了hibernate的方式,对应的类里面有这么一个属性:
[code]private boolean isHot;
public void setHot(boolean isHot) { this.isHot = isHot; }
public boolean isHot() { return this.isHot; }[/code]
结果发现异常: There is no WRITEABLE property named...
仔细研究了一下ibatis的官方文档,发现其中有句话:[b]基本数据类型如int,boolean和float不能直接使用。因为iBATIS是面向对象的解决方案。因此所有的参数和结果必须是对象。[/b]
将java代码改为:
[code]private Boolean isHot;
public void setIsHot(Boolean isHot) { this.isHot = isHot; }
public Boolean getIsHot() { return this.isHot; }[/code]
问题解决。
[code]<result property="isHot" column="IS_HOT" javaType="BOOLEAN" jdbcType="BIT"/>[/code]
我习惯了hibernate的方式,对应的类里面有这么一个属性:
[code]private boolean isHot;
public void setHot(boolean isHot) { this.isHot = isHot; }
public boolean isHot() { return this.isHot; }[/code]
结果发现异常: There is no WRITEABLE property named...
仔细研究了一下ibatis的官方文档,发现其中有句话:[b]基本数据类型如int,boolean和float不能直接使用。因为iBATIS是面向对象的解决方案。因此所有的参数和结果必须是对象。[/b]
将java代码改为:
[code]private Boolean isHot;
public void setIsHot(Boolean isHot) { this.isHot = isHot; }
public Boolean getIsHot() { return this.isHot; }[/code]
问题解决。