Mybatis PostgreSQL выдает ошибку "столбец не существует" для существующего столбца, и его значения генерируются автоматически
Ниже приведен оператор создания таблицы, который успешно создал таблицу в базе данных PostgreSQL.
CREATE TABLE
SYNC_REPOSITORIES (
REPOSITORY_ID BIGINT NOT NULL GENERATED ALWAYS AS IDENTITY PRIMARY KEY,
REPOSITORY_NAME VARCHAR(256) NOT NULL,
REPOSITORY_KIND VARCHAR(256) NOT NULL,
LOGIN_NAME VARCHAR(256),
LOGIN_INFO VARCHAR(2000),
CONSTRAINT REPO_NAME_U UNIQUE (REPOSITORY_NAME));
Mybatis mapper.xml для вставки
<insert id="insertRepository" parameterType="RepositoryDO" useGeneratedKeys="true" keyProperty="id" keyColumn="REPOSITORY_ID">
INSERT INTO SYNC_REPOSITORIES (
REPOSITORY_NAME,
REPOSITORY_KIND,
LOGIN_NAME,
LOGIN_INFO)
VALUES (
#{name},
#{kind},
#{loginName,jdbcType=VARCHAR},
#{loginInfo,jdbcType=VARCHAR})
</insert>
Поскольку REPOSITORY_ID - это автоматически созданное значение, я не добавлял его в оператор вставки. Когда это выполняется через sqlSessionFactory, он возвращает сообщение об ошибке
Ошибка при настройке параметров
SQL: INSERT INTO SYNC_REPOSITORIES ( REPOSITORY_NAME, REPOSITORY_KIND, LOGIN_NAME, LOGIN_INFO) VALUES ( ?, ?, ?, ?)
### Cause: org.postgresql.util.PSQLException: ERROR: column "REPOSITORY_ID" does not exist
Position: 194
; bad SQL grammar []; nested exception is org.postgresql.util.PSQLException: ERROR: column "REPOSITORY_ID" does not exist
Position: 194
Тот же mapper xml работает для MSSQL, а также для базы данных ORACLE. Я новичок в PostgreSQL.