JPA (провайдер гибернации) и Postgres 11
У меня есть эта конфигурация для моего свойства Id
(это один столбец / атрибут PK).
По какой-то причине после выполнения INSERT в эту таблицу JPA вызывает
select currval('yb.asset_store_id_seq')
Я полагаю (я не уверен), что делает это, чтобы обновить sh Идентификатор недавно вставленной сущности или, может быть, по какой-то аналогичной причине
Но такой последовательности нет. Моя последовательность называется yb.asset_store_seq
, а моя таблица - yb.asset_store
. Мой класс сущности AssetStore
.
Итак ... как мне избавиться от этой проблемы? В основном JPA каким-то образом создает это имя последовательности из ниоткуда . Или я что-то упустил?!
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "id", unique = true, nullable = false, insertable=false, updatable=false)
private Integer id;
На уровне БД последовательность принадлежит таблице.
Вот трассировка стека.
Hibernate:
select
currval('yb.asset_store_id_seq')
Mar 25, 2020 3:45:02 PM org.hibernate.engine.jdbc.spi.SqlExceptionHelper logExceptions
WARN: SQL Error: 0, SQLState: 42P01
Mar 25, 2020 3:45:02 PM org.hibernate.engine.jdbc.spi.SqlExceptionHelper logExceptions
ERROR: ERROR: relation "yb.asset_store_id_seq" does not exist
Position: 16
Exception in thread "main" javax.persistence.PersistenceException: org.hibernate.exception.SQLGrammarException: could not extract ResultSet
...................
Caused by: org.postgresql.util.PSQLException: ERROR: relation "yb.asset_store_id_seq" does not exist
Position: 16
at org.postgresql.core.v3.QueryExecutorImpl.receiveErrorResponse(QueryExecutorImpl.java:2440)
at org.postgresql.core.v3.QueryExecutorImpl.processResults(QueryExecutorImpl.java:2183)
at org.postgresql.core.v3.QueryExecutorImpl.execute(QueryExecutorImpl.java:308)