我正在尝试使用ibatis将多个对象插入到表中,我想当将HasMap参数传递给dao mapper方法时,类强制转换异常会被强制转换,因为断点不会被触发而插入查询不会记录。我试图传递一个列表,但得到了同样的例外。下面我发布了代码,目前我完全无能为力。映射有什么问题?
xml mapping:
<insert id="insert" parameterType="java.util.HashMap">
INSERT INTO [ANTICIPI_F]
([ID],[ID_BATCH],[ID_FASCICOLO],[ABI],[CED]
,[ORIGINE],[TIPO],[IMPORTO],[PEZZI]
,[NUMERO_FATTURA],[PAGINA_FATTURA],[TRASMESSO]
,[NUMERO_FATTURA_ELAB],[DATA_CREAZIONE])
VALUES
<foreach collection="anticipi" item="item" separator=",">
( #{item.ID} ,#{item.ID_BATCH},#{item.ID_FASCICOLO}
,#{item.ABI},#{item.CED},#{item.ORIGINE}
,#{item.TIPO},#{item.IMPORTO},#{item.PEZZI}
,#{item.NUMERO_FATTURA},#{item.PAGINA_FATTURA}
,#{item.TRASMESSO},#{item.NUMERO_FATTURA_ELAB}
,#{item.DATA_CREAZIONE})
</foreach>
</insert>
这是模型:
public class AnticipoF implements Serializable{
/**
*
*/
private static final long serialVersionUID = 6679856006862546933L;
private Integer ID;
private Integer ID_BATCH;
private String ID_FASCICOLO;
private Integer ABI;
private Integer CED;
private String ORIGINE;
private String TIPO;
private Double IMPORTO;
private Integer PEZZI;
private String NUMERO_FATTURA;
private Integer PAGINA_FATTURA;
private Integer TRASMESSO;
private String NUMERO_FATTURA_ELAB;
private Date DATA_CREAZIONE;
//... getters and setters
//...equals and hashcode}
映射的方法签名:
public void insertAnticipiFatturaKofax(HashMap<String,Object> anticipiFattureKofax) throws SQLException;
哈希映射:
List<AnticipoFatturaKofax> anticipiFattureKofax = new ArrayList<AnticipoFatturaKofax>();
HashMap<String,Object> anticipi = new HashMap<String, Object>();
anticipi.put("anticipi", anticipiFattureKofax);
电话:
anticipiFattureKofaxMapper.insertAnticipiFatturaKofax(anticipi);
答案 0 :(得分:0)
问题不在于ibatis,而是在spring aop注入的日志类中。 无论如何,因为我花了很多时间在这上面(我是ibatis和spring的初学者),对于早于2008的sql server,insert命令的正确映射是:
INSERT INTO [ANTICIPI_FATTURE_KOFAX]
([ID],[ID_BATCH],[ID_FASCICOLO],[ABI],[CED]
,[ORIGINE],[TIPO],[IMPORTO],[PEZZI]
,[NUMERO_FATTURA],[PAGINA_FATTURA],[TRASMESSO]
,[NUMERO_FATTURA_ELAB],[DATA_CREAZIONE])
<foreach collection="anticipi" item="item" open="SELECT" separator="UNION ALL SELECT">
#{item.ID} ,#{item.ID_BATCH},#{item.ID_FASCICOLO}
,#{item.ABI},#{item.CED},#{item.ORIGINE}
,#{item.TIPO},#{item.IMPORTO},#{item.PEZZI}
,#{item.NUMERO_FATTURA},#{item.PAGINA_FATTURA}
,#{item.TRASMESSO},#{item.NUMERO_FATTURA_ELAB}
,#{item.DATA_CREAZIONE}
</foreach>
</insert>