У меня возникла проблема при запуске SpringBootTests.
В тестах используется база данных H2, поэтому они воссоздают схему при каждом запуске. Для одной из моих сущностей Hibernate не добавляет auto_increment
в столбец id
.
Я не могу найти никаких существенных различий между ошибочной сущностью (Payment
) и другие, которые работают правильно (например, Invoice
). Все они имеют следующие аннотации в поле id
:
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
Я установил spring.jpa.show-sql=true
, и вот что я вижу:
- Объект
Payment
показывает create table payment (id bigint not null,
- Объект
Invoice
показывает create table invoice (id bigint not null
auto_increment,
На самом деле я попытался скопировать класс Payment
в Payment2
, а Payment2
не получил проблема:
- Объект
Payment
показывает create table payment (id bigint not null,
- Объект
Payment2
показывает create table invoice (id bigint not null
auto_increment,
Учитывая это, я полагаю Я должен искать переопределяющую конфигурацию, которая не в классе Payment
, но которая каким-то образом удаляет auto_increment
только из этого одного класса. Кто-нибудь знает, что может быть причиной этого?
Это версии задействованных библиотек:
- Версия Spring Boot 2.1.8
- Hibernate 5.3.11
- База данных H2 1.4.200