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.

0 ответов

Другие вопросы по тегам