我有这样的 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 组合。
有人可以告诉我如何解决吗?