-1

こんにちは、ibatis を介してオブジェクトのリストを挿入しようとしていますが、org.apache.ibatis.mapping.SqlMapperException: The expression 'boxlist' evaluate 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>

私のdaoクラスは

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

}

誰でも私を助けることができますか?

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 に答える