MyBatis不使用布尔映射

我只是想用Mybatis映射一个布尔值,但我遇到了问题。 首先,我将向您展示所涉及的部分:

XML File:      

Java类:

 public class DestinationTypeDTO { private long destinationTypeId; private String description; private boolean available; public long getDestinationTypeId() { return destinationTypeId; } public void setDestinationTypeId(long destinationTypeId) { this.destinationTypeId = destinationTypeId; } public String getDescription() { return description; } public void setDescription(String description) { this.description = description; } public boolean isAvailable() { return available; } public void setAvailable(boolean available) { this.available = available; } } 

但是,我收到此错误日志:

 org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.reflection.ReflectionException: Could not set property 'isAvailable' of '....DestinationTypeDTO@bbd76bf' with value 'true' Cause: org.apache.ibatis.reflection.ReflectionException: There is no setter for property named 'isAvailable' in 'class ....DestinationTypeDTO' 

我花了好几个小时试图找到正在发生的事情,但没有成功。 任何提示?

感谢大家。

javaType="boolean"更改为java.lang.Boolean并指定property="available"

  

在你的类中更改private boolean available; to private Boolean isAvailable; 并添加getter / setter

 public void setIsAvailable(Boolean available) { this.available = available; } public Boolean getIsAvailable() { return available; } 

更改你的setter,ibatis期望bojo名称标准格式为pojo: –

  public void setIsAvailable(boolean available) { this.available = available; } 

您的数据库列名为“is_available”,并且您的属性名为“available”,这就是映射不起作用的原因,您有两个解决方案:

  1. 将列的名称更改为“available”或更改属性“is_available”的名称(对Java不适用)

  2. 在sql查询中使用“is_available as available”。