社区问候我在返回与过程关联的游标时遇到问题。
PROCEDURE USP_SEL_TAB_ANIOS(po_Lr_Recordset OUT SYS_REFCURSOR) IS
BEGIN
SELECT A.COD_ANIO , A.DESCRIPCION FROM BAH_MAE_ANIO A ;
END ;
包中包含两个类:
public class ItemBean implements Serializable {
private Integer icodigo;
private String descripcion;
private String descripcionCorta;
// get and set
}
-
public class ResultItemBean implements Serializable {
private static final long serialVersionUID = 1L;
private List<ItemBean> itemBeans;
// get and set
}
映射
public interface ControlCalidadMapper {
public abstract List<ItemBean> listarAnios(ItemBean item) throws Exception;
}
ControlCalidadMapper.xml
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="pe.com.sigbah.mapper.gestion_almacenes.ControlCalidadMapper">
<resultMap id="mapAnio" type="pe.com.sigbah.common.bean.ItemBean">
<result property="descripcionCorta" column="COD_ANIO" />
<result property="descripcion" column="DESCRIPCION" />
</resultMap>
<parameterMap id="getAnio" type="pe.com.sigbah.common.bean.ResultItemBean">
<!-- <parameter property="start_from" jdbcType="INTEGER" mode="IN" /> -->
<parameter property="itemBeans" jdbcType="CURSOR" mode="OUT" resultMap="mapAnio" />
</parameterMap>
<select id="listarAnios" parameterMap="getAnio" statementType="CALLABLE">
{call BAH_PKG_GENERAL.USP_SEL_TAB_ANIOS(?)}
</select>
</mapper>
服务
@Service
public class ControlCalidadServiceImpl extends GenericServiceImpl implements ControlCalidadService {
private static final long serialVersionUID = 1L;
@Autowired
private ControlCalidadMapper controlCalidadMapper;
/* (non-Javadoc)
* @see pe.com.sigbah.service.gestion_almacenes.ControlCalidadService#listarAnios(pe.com.sigbah.common.bean.ItemBean)
*/
@Override
public List<ItemBean> listarAnios(ItemBean item) throws Exception {
return controlCalidadMapper.listarAnios(item);
}
}
错误:
DEBUG: pe.com.sigbah.mapper.gestion_almacenes.ControlCalidadMapper.listarAnios - ooo Using Connection [jdbc:oracle:thin:@200.48.54.22:1521:INTEGRAL, UserName=SINPAD, Oracle JDBC driver]
DEBUG: pe.com.sigbah.mapper.gestion_almacenes.ControlCalidadMapper.listarAnios - ==> Preparing: {call BAH_PKG_GENERAL.USP_SEL_TAB_ANIOS(?)}
DEBUG: pe.com.sigbah.mapper.gestion_almacenes.ControlCalidadMapper.listarAnios - ==> Parameters:
ERROR: pe.com.sigbah.web.controller.gestion_almacenes.ControlCalidadController - nested exception is org.apache.ibatis.reflection.ReflectionException: Could not set property 'itemBeans' of 'class pe.com.sigbah.common.bean.ItemBean' with value '[ItemBean [icodigo=null, descripcion=Seleccione, descripcionCorta=%], ItemBean [icodigo=null, descripcion=Año del buen servicio al ciudadano, descripcionCorta=2017], ItemBean [icodigo=null, descripcion=null, descripcionCorta=2018], ItemBean [icodigo=null, descripcion=null, descripcionCorta=2019], ItemBean [icodigo=null, descripcion=null, descripcionCorta=2020]]' Cause: org.apache.ibatis.reflection.ReflectionException: There is no setter for property named 'itemBeans' in 'class pe.com.sigbah.common.bean.ItemBean'
org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.reflection.ReflectionException: Could not set property 'itemBeans' of 'class pe.com.sigbah.common.bean.ItemBean' with value '[ItemBean [icodigo=null, descripcion=Seleccione, descripcionCorta=%], ItemBean [icodigo=null, descripcion=Año del buen servicio al ciudadano, descripcionCorta=2017], ItemBean [icodigo=null, descripcion=null, descripcionCorta=2018], ItemBean [icodigo=null, descripcion=null, descripcionCorta=2019], ItemBean [icodigo=null, descripcion=null, descripcionCorta=2020]]' Cause: org.apache.ibatis.reflection.ReflectionException: There is no setter for property named 'itemBeans' in 'class pe.com.sigbah.common.bean.ItemBean'
我希望你能帮助我使用mapper 我希望你可以帮我用映射器 我希望你可以帮我使用mapper
答案 0 :(得分:0)
你应该在Mapper中传递一个ResultItemBean对象,如下所示:
public abstract List<ItemBean> listarAnios(ResultItemBean items) throws Exception;
在ControlCalidadMapper.xml文件中,将parameterMap定义为 pe.com.sigbah.common.bean.ResultItemBean 因此您可以将此对象作为参数传递。