1

我有这样的 Ciudad 类和 Departamento 类: public class 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;
    }

}

类部门:公共类部门{

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;
}

...和我的城市地图绘制器:

<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”的参数映射上为空。未指定和/或找不到指定的 javaType / jdbcType 组合。

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

4

0 回答 0