Я использую вставку в запрос SELECT MySQL, но в операторе выбора я передаю параметр (карту) из Java.Этот запрос написан с использованием фреймворка iBatis.Запрос не распознает переданное значение в операторе выбора.
Я попытался изменить #id#
на #{id}
, $id$
, #{id}
и ${id}
, но не удалось.
Запрос выглядит так:
<insert id="someId" parameterClass="map" >
insert into table1(id, column1, column2)
(
select #id#, A.column1, A.column2
from table2 A left outer join table3 B on A.column = B.column
where <condition>
order by column1, column2
)
</insert>
Я отправил параметр запроса в виде 13-значного длинного идентификатора.В схеме table1 id имеет тип данных bigint (20).
Я хочу, чтобы любой параметр (id), который я передаю в запрос, был вставлен в таблицу.
Теперь проблемаявляется то, что он не распознает значение #id#
.Поскольку ограничение столбца id не является нулевым, оно выдает "MySQLIntegrityConstraintViolationException: Column 'id' cannot be null" after running the above statement.
Что мне следует попробовать вместо # id #, чтобы оно заработало?Или это может быть какая-то другая проблема?