У меня есть следующая схема:
CREATE TABLE API
(
ID BIGINT NOT NULL,
NAME VARCHAR NOT NULL,
API_PARENT_ID BIGINT,
CONSTRAINT API_PKEY PRIMARY KEY (ID)
CONSTRAINT API_PARENT_ID_FKEY FOREIGN KEY (API_PARENT_ID) references API,
);
Моя сущность API имеет FK на себе в случае API-зависимостей (например, отношения потомок-родитель)
Я справляюсь сам(то есть я избегал использовать hibernate) часть CRUD с шаблоном jdbc.Я столкнулся с проблемой, когда мой API является родительским, и тогда значение api_parent_id должно быть нулевым.
Следующая строка (я пропустил бессмысленные столбцы):
String _SQL_UPDATE_API = "update api set api_parent_id = ? where id = ?"
this.jdbcTemplate.update(_SQL_UPDATE_API, api.getParent !=null ? api.getParent().getId() : null , api.getId());
returnследующая ошибка:
[90012-196]; nested exception is org.h2.jdbc.JdbcSQLException: Parameter "#1" is not set; SQL statement: update api set api_parent_id = ? where id = ?
Как мне обработать нулевое значение?Я пытался с MapSqlParameterSource или с PreparedStatement в указании
ps.setNull(1,Types.NULL);