У меня есть средство вставки iBatis, которое пытается вставить новую запись в Oracle db.Картограф принимает класс Entity в качестве параметра и имеет ключ sPro в качестве идентификатора записи.Проблема в том, что преобразователь не вставляет новую запись в Oracle db и возвращает NullPointerException при вызове findByPrimaryKey ().
Я попытался вставить новую запись через SQLDeveloper, используя тот же запрос вставки, и этоработает нормально.Не уверен, что это как-то связано с mapper, или значение keyProperty неправильно введено в запрос mapper.Значение keyProperty должно увеличиваться на 1 для каждой новой вставленной записи.
<insert id="insertSelective" parameterClass="entity-class" >
<selectKey resultClass="java.lang.Integer" keyProperty="sid" >
SELECT IRWO.SEQIRWOJ.nextval as sid FROM DUAL
</selectKey>
INSERT INTO IRWO.WSO
<dynamic prepend="(" >
<isNotNull prepend="," property="sid" >
SID
</isNotNull>
<isNotNull prepend="," property="wsoNbr" >
WSO_NBR
</isNotNull>
)
</dynamic>
VALUES
<dynamic prepend="(" >
<isNotNull prepend="," property="sid" >
#sid:INTEGER#
</isNotNull>
<isNotNull prepend="," property="wsoNbr" >
#wsoNbr:VARCHAR#
</isNotNull>
</dynamic>
</insert>
Ожидаемый результат - успешная вставка новой записи со столбцом «sid» в качестве идентификатора, но вместо этого она возвращает исключение NullPointerException в «sid».ключ.