SQLGrammarException: не удалось извлечь ResultSet: так как отношение не существует - PullRequest
0 голосов
/ 17 января 2020

Я получаю исключение при весенней загрузке с postgres DB при использовании генератора последовательности.

Ниже приведена трассировка стека

2020-01-17 15:54:10 - SQL Error: 0, SQLState: 42P01
2020-01-17 15:54:10 - ERROR: relation "predefmapping_seq" does not exist
Position: 17
2020-01-17 15:54:13 - Error adding tags to the DB:
javax.persistence.PersistenceException: org.hibernate.exception.SQLGrammarException: could not 
extract ResultSet
at org.hibernate.internal.ExceptionConverterImpl.convert(ExceptionConverterImpl.java:149) ~ 
[hibernate-core-5.2.17.Final.jar!/:5.2.17.Final]
at org.hibernate.internal.ExceptionConverterImpl.convert(ExceptionConverterImpl.java:157) ~ 
[hibernate-core-5.2.17.Final.jar!/:5.2.17.Final]
at org.hibernate.internal.ExceptionConverterImpl.convert(ExceptionConverterImpl.java:164) ~ 
[hibernate-core-5.2.17.Final.jar!/:5.2.17.Final]
at org.hibernate.internal.SessionImpl.firePersist(SessionImpl.java:790) ~[hibernate-core- 
5.2.17.Final.jar!/:5.2.17.Final]
at org.hibernate.internal.SessionImpl.persist(SessionImpl.java:768) ~[hibernate-core- 
   5.2.17.Final.jar!/:5.2.17.Final]
at sun.reflect.GeneratedMethodAccessor118.invoke(Unknown Source) ~[na:na]
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~ [na:1.8.0_232] 

Ниже приведен столбец класса Entinty, для которого последовательность добавлена.

@Id
@SequenceGenerator(name="PREDEFMAPPING_SEQ", sequenceName="PREDEFMAPPING_SEQ",initialValue = 1, allocationSize=1)
@GeneratedValue(strategy = GenerationType.AUTO ,generator="PREDEFMAPPING_SEQ")
@Column(name = "ID")
private long id;

Обратите внимание, что это было проверено с db2, oracle и ms sql. Однако для postgres это дает мне вышеупомянутое исключение.

Имя последовательности в таблице postgres db - "beforefmap_seq", а не "PREDEFMAPPING_SEQ", как в сущности.

Большинство решений предлагаю изменить стратегию генерации на IDENTITY, однако я хотел найти решение, которое было бы применимо ко всем (db2, oracle, мс sql и postgres)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...