SQLException при добавлении новых полей в существующую @Entity (jpa) - PullRequest
0 голосов
/ 12 марта 2020

У меня была модель, которая, например, выглядит следующим образом:

import javax.persistence.ElementCollection;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.Id;
import javax.validation.constraints.NotNull;
import java.math.BigDecimal;
import java.util.Map;

@Entity
@NoArgsConstructor
@AllArgsConstructor
@RequiredArgsConstructor
@Getter
public class MyTable {

    @Id
    long myId;

    @NotNull
    String myField_1;

    @ElementCollection(fetch = FetchType.EAGER)
    @NonNull
    Map<Integer, BigDecimal> myField_2;
}

Я запустил ее на сервере, приложение (приложение Spring Boot) некоторое время работало с этой таблицей, и я решил, что я нужно другое поле:

    @ElementCollection(fetch = FetchType.EAGER)
    @NonNull
    Map<Integer, BigDecimal> myAdditionalField;

Но когда я снова запускаю приложение на сервере, я получаю такие исключения:

org.hibernate.tool.schema.spi.CommandAcceptanceException: Error executing DDL "alter table my_table_my_additional_field add constraint FK35gbk1v4oaclmxu6onjiopln0 foreign key (my_table_my_id) references my_table (my_id)" via JDBC Statement
...
Caused by: java.sql.SQLException: Can't create table `my_database_name`.`#sql-7f7_4531` (errno: 150 "Foreign key constraint is incorrectly formed")

Почему это происходит и как добавить новые поля в мою сущность ? У меня есть собственность jpa.hibernate.ddl-auto: update. Самое смешное, что поле и его «коллекция карт» добавлены в БД правильно, просто есть странная ошибка ограничения для этого нового поля

1 Ответ

0 голосов
/ 26 марта 2020

Поиск этого сообщения об ошибке.

Вот один ответ, который перечисляет некоторые варианты: { ссылка }

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