Синтаксическая ошибка в операторе SQL при использовании Hibernate Envers - PullRequest
0 голосов
/ 07 сентября 2018

Я только что добавил hibernate envers в свой весенний загрузочный проект.

<dependency>
  <groupId>org.hibernate</groupId>
  <artifactId>hibernate-envers</artifactId>
  <version>${hibernate.version}</version>
</dependency>

Здесь моя сущность:

@Audited
@Entity
public class MyTable {
...
}

Скрипт миграции миграционного пути создает соответствующие таблицы:

CREATE TABLE MY_TABLE_AUD (
    ID BIGINT       NOT NULL,
    REV             INTEGER NOT NULL,
    REVTYPE         TINYINT,
   PRIMARY KEY ( id, REV )
);

create table REVINFO (
    REV  INTEGER GENERATED BY DEFAULT AS IDENTITY,
    REVTSTMP BIGINT,
    PRIMARY KEY ( REV )
);

alter table MY_TABLE_AUD
   add constraint FK5ecvi1a0ykunrriib7j28vpdj
   foreign key (REV)
   references REVINFO;

Как только я пытаюсь сохранить сущность в MY_TABLE, я получаю следующую ошибку:

Syntax error in SQL statement "SELECT HIBERNATE_SEQUENCE.NEXTVAL FROM[*] DUAL "; expected "identifier"; SQL statement:
select hibernate_sequence.nextval from dual [42001-197]

Ошибка, по-видимому, связана с последовательностью, которая должна генерировать значение REV.

1 Ответ

0 голосов
/ 08 сентября 2018

Ошибка указывает на то, что у вас неверный оператор SQL.

https://www.h2database.com/javadoc/org/h2/api/ErrorCode.html#c42001

Я думаю, что ваше имя таблицы не "MyTable", а какое-то другое имя таблицы. Проверьте, является ли имя таблицы защищенным ключевым словом h2 и, следовательно, не является допустимым именем таблицы. Возможно, вам придется изменить название класса вашей модели.

...