1


9 個のパラメーターを持つ適切な挿入ステートメントがありますが、何らかの理由で iBatis は特定のオブジェクトに対して 6 個しか生成しません。他のすべての場合、必要に応じて 9 が生成されます。
すべてのパラメーターが NULL であるという事実でしょうか?

?,?,?,?,?,null,?,null,null,null,null,null,?,?,?,null,null

わかった:

パラメータ: [[B@132b63e, [B@5ac911, [B@468066, xxxxxxxxxxxxxxxx, null, null, 0, 0, 0]

ノック:

パラメータ: [ヌル、ヌル、ヌル、ヌル、ヌル、ヌル]

そして、エラーはあなたが期待したとおりです:

インデックス 7 に IN または OUT パラメータがありません

SOME_TABLE の値に 17 列を挿入 (
        #id#,
        #someObj.id#,
        #someOtherObj.id#,
        #プロパティ#,
        #別のプロパティ#,
        ヌル、
        #まだ別のプロパティ#,
        ヌル、
        ヌル、
        ヌル、
        ヌル、
        ヌル、
        #prop1#,
        #prop2#,
        #prop3#、
        ヌル、
        ヌル)

someObj と someOtherObj は NULL です。また、私のアプリは遅延読み込みに cglib を使用しているため、いくつかの機能強化が存在する可能性がありますが、それが何かに影響するかどうかはわかりません。

4

1 に答える 1

1

あなたはこれを行うことができます:

INSERT 17 COLUMNS INTO SOME_TABLE VALUES (
        #id#,
        <isNotNull property="someObj">
            #someObj.id#,
        </isNotNull>
        <isNull property="someObj">
            NULL,
        </isNull>
        <isNotNull property="someOtherObj">
            #someOtherObj.id#,
        </isNotNull>
        <isNull property="someObj">
            NULL,
        </isNull>
        #aProperty#,
        #anotherProperty#,
        null,
        #yetAnotherProperty#,
        null,
        null,
        null,
        null,
        null,
        #prop1#,
        #prop2#,
        #prop3#,
        null,
        null)
于 2011-08-24T07:59:41.480 に答える