对于property + MyBatis Error的参数映射,类型处理程序为null

时间:2015-05-28 19:52:53

标签: spring-mybatis

我有Ciudad课和Departamento课这样: 公共阶层Ciudad {

private Long id;
private String descripcion;
private String abreviatura;
private Departamento departamento;

public Long getId() {
    return id;
}
public void setId(Long id) {
    this.id = id;
}
public String getDescripcion() {
    return descripcion;
}
public void setDescripcion(String descripcion) {
    this.descripcion = descripcion;
}
public String getAbrev() {
    return abreviatura;
}
public void setAbrev(String abrev) {
    this.abreviatura = abrev;
}


    public boolean equals(Object other) {
        return (other != null && getClass() == other.getClass() && id != null)
            ? id.equals(((Ciudad) other).id)
            : (other == this);
    }


    public int hashCode() {
        return (id != null) 
            ? (getClass().hashCode() + id.hashCode())
            : super.hashCode();
    }
    public Departamento getDepartamento() {
        return departamento;
    }
    public void setDepartamento(Departamento departamento) {
        this.departamento = departamento;
    }

}

班级离开: 公共课Departamento {

private Long id;
private String descripcion;

public Long getId() {
    return id;
}
public void setId(Long id) {
    this.id = id;
}
public String getDescripcion() {
    return descripcion;
}
public void setDescripcion(String descripcion) {
    this.descripcion = descripcion;
}

...和我的ciudad mapper:

<mapper namespace="spring.security.dao.CiudadDAO">
<resultMap id="CiudadResultMap" type="CiudadDTO">
        <id  property="id" column="id" />
        <result property="descripcion" column="descripcion" />
        <result property="abreviatura" column="abreviatura" />          
        <association property="departamento" column="idDepartamento" javaType="DepartamentoDTO" >
            <id property="id" column="idDepartamento" />            
            <result property="descripcion" column="descDepartamento" />         
        </association>      
</resultMap>
<sql id="selectCiudad">
        <![CDATA[
        SELECT 
            c.id as id,
                d.descripcion as descDepartamento,
            c.descripcion as descripcion,
            c.abreviatura as abreviatura
        FROM 
            ciudad c INNER JOIN departamento D ON c.id_departamento =D.id

        ]]>
    </sql>

    <select id="getAllCiudades" resultMap="CiudadResultMap">
    <include refid="selectCiudad" />
        ORDER BY id ASC     
    </select>

    <select id="getCiudadById" resultMap="CiudadResultMap" parameterType="Long">
    <include refid="selectCiudad" />
        WHERE id= #{value}      
    </select>

    <insert id="saveCiudad" parameterType="CiudadDTO" useGeneratedKeys="true" keyProperty="id" keyColumn="id">
        INSERT INTO ciudad(
            descripcion, abreviatura, id_departamento   
        )
        VALUES (
            #{descripcion}, #{abrev},#{departamento}             
        )
    </insert>

    <update id="updateCiudad" parameterType="CiudadDTO">
        UPDATE ciudad
        SET
            descripcion= #{descripcion},
            abreviatura= #{abrev}       
        WHERE id = #{id}
    </update>

    <delete id="deleteCiudad" parameterType="java.lang.Long">
        delete from ciudad where id = #{id}
    </delete>
显然,你有一个DAO接口和服务,当我尝试使用4Junit测试执行时,这是一个例外:

引起:java.lang.IllegalStateException:对于属性'departamento'的参数映射,类型处理程序为null。未指定和/或找不到指定的javaType / jdbcType组合。

有人可以告诉我如何解决吗?

0 个答案:

没有答案