-1

Hi I am trying to insert a list of object through ibatis but i am getting an exception like org.apache.ibatis.mapping.SqlMapperException: The expression 'boxlist' evaluated to a null value.

<insert id="insertList" parameterType="java.util.List">
    INSERT INTO boxtable (
    size,length)
    VALUES
    <foreach item="box" collection="boxList" separator=",">
        (#{box.size},#{box.length})
    </foreach>
</insert>

My dao class is like

public void insert(List<box> boxList)
        throws SQLException {

    try {                            
        sqlSession = sqlSessionFactory.openSession(AUTO_COMMIT); 
        int status = sqlSession.insert("insertlist", boxList);
        logger.debug("status :: " + status);
        sqlSession.commit();
    } catch (Throwable ee) {
        logger.error("e", ee);
    sqlSession.rollback();
    } finally {
        sqlSession.close();
    }

}

Can anyone help me out???

4

2 回答 2

1

如果我没记错的话,你需要传递一个包含属性的对象,或者你可以传递一个包含键boxList的映射。boxList例如

public class Wrapper {
    private List<box> boxList;
}


<insert id="insertList" parameterType="Wrapper">
    INSERT INTO boxtable (
    size,length)
    VALUES
    <foreach item="box" collection="boxList" separator=",">
        (#{box.size},#{box.length})
    </foreach>
</insert>
于 2013-04-15T05:45:06.373 回答
0

尝试 在您的 sql 语句中使用<isPropertyAvailable>之前。<foreach>您也可以尝试使用<iterate>但不要忘记将 [] 附加到您的盒子列表(如#boxlist[]#

有关 ibatis 中动态 sql 语句的更多信息,请点击此链接

于 2013-04-15T05:24:37.433 回答