【发布时间】:2019-03-20 02:06:21
【问题描述】:
我有以下架构:
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 依赖(如子父关系)
我已经使用 jdbc 模板处理了自己(意味着我已经避免使用休眠)CRUD 部分。 当我的 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());
返回以下错误:
[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);
【问题讨论】:
标签: java sql jdbc h2 jdbctemplate