我有一个很好的插入语句,它有9个参数,但是由于某种原因iBatis只为一个特定对象生成6个参数。对于其他的,它生成9,这是应该的。
是不是所有的参数都是NULL ?
?,?,?,?,?, ?空,空,空,空,空,空,? ?,?空,空
OK:
参数:[[B@132b63e, [B@5ac911, [B@468066, xxxxxxxxxxxxxxxx, null, null, 0,0,0]
NOK:
参数:[null, null, null, null, null, null]错误如你所料:
索引7缺少IN或OUT参数
INSERT 17 COLUMNS INTO SOME_TABLE VALUES#我#,# someObj.id #,# someOtherObj.id #,# aProperty #,# anotherProperty #,空,# yetAnotherProperty #,空,空,空,空,空,# prop1 #,# prop2 #,# prop3 #,空,null) 之前someObj和someOtherObj为NULL。此外,我的应用程序使用cglib延迟加载,所以一些增强可能存在,不知道它是否影响的东西。
你可以这样做:
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)