Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/349.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Mybati不使用布尔映射_Java_Jakarta Ee_Persistence_Mybatis_Mybatis Generator - Fatal编程技术网

Java Mybati不使用布尔映射

Java Mybati不使用布尔映射,java,jakarta-ee,persistence,mybatis,mybatis-generator,Java,Jakarta Ee,Persistence,Mybatis,Mybatis Generator,我只是想用Mybatis映射一个布尔值,但我遇到了一个问题。首先,我将向您展示所涉及的部分: XML File: <resultMap id="destinationTypeMap" type="DestinationTypeDTO"> <result property="destinationTypeId" column="education_destination_type_id" javaType="java.lang.Long" jdbcType="N

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

XML File:

<resultMap id="destinationTypeMap" type="DestinationTypeDTO">
        <result property="destinationTypeId" column="education_destination_type_id" javaType="java.lang.Long" jdbcType="NUMERIC"/>
        <result property="description" column="description" javaType="java.lang.String" jdbcType="VARCHAR"/>
        <result property="available" column="is_available" javaType="boolean" jdbcType="VARCHAR" typeHandler="BooleanHandler"/>
    </resultMap>
但是,我得到了以下错误日志:

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”


更改您的setter,ibatis希望布尔名称的标准格式为pojo:-

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

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

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

  • 在sql查询中,使用“is_available as available”

  • 使用

    不是

    \u boolean
    映射到
    boolean
    boolean
    映射到
    java.lang.boolean


    文档:

    谢谢您的提示,但仍然不是工作伙伴。还有其他建议吗?事实上,boolean会像java将其视为primitve类型一样工作。它不起作用,请注意属性以前已经“可用”。@stackpepe您现在可以试试吗?嗨,伙计,您的解决方案是对的,问题是我没有重新启动Weblogic,所以xml文件没有被重新加载。谢谢!我做了,但还是不工作。我仍然收到以下消息:org.mybatis.spring.MyBatisSystemException:嵌套异常为org.apache.ibatis.reflection.ReflectionException:无法设置'uk.co.corelogic.mosaic.dto.education'的属性'isAvailable'。DestinationTypeDTO@bbd76bf'的值为'true'原因:org.apache.ibatis.reflection.ReflectionException:没有用于“class uk.co.corelogic.mosaic.dto.education.DestinationTypeDTO”中名为“isAvailable”的属性
    <result property="available" column="is_available" property="available" javaType="java.lang.Boolean" jdbcType="VARCHAR" typeHandler="BooleanHandler"/>
    
    public void setIsAvailable(Boolean available) {
        this.available = available;
    }
    
    public Boolean getIsAvailable() {
        return available;
    }
    
     public void setIsAvailable(boolean available) {
        this.available = available;
    }
    
    javaType="_boolean"
    
    javaType="boolean"