Ограничение внешнего ключа формируется неправильно из-за изменения порядка полей в классе JPA Entity.JAVA

Программисты JAVA общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 Ограничение внешнего ключа формируется неправильно из-за изменения порядка полей в классе JPA Entity.

Сообщение Anonymous »

Я использую JPA в приложении Spring-Boot с JPA (

Код: Выделить всё

jakarta.persistence
Аннотации).
Создание моей схемы БД (

Код: Выделить всё

hbm2ddl=create
) завершился с ошибкой:

⚡ Ограничение внешнего ключа сформировано неправильно Исключение

Мне удалось решить проблему, изменив порядок полей в классе сущности.
Теперь я немного запутался.
  • Разве Hibernate не должен определить правильный порядок DDL?
  • Есть ли другой способ установить порядок отношений FK?
  • У меня ужасное ощущение, что изменение порядка моих полей нарушит схему БД — в случае создания новой схемы.
Сущность в Котлине выглядит так:

Код: Выделить всё

@Entity
@Table(name = "sample")
class Sample() {

@Id
@GeneratedValue
@Column(columnDefinition = "char(36)", nullable = false)
open var serial: String = ""

// Moving it to here, will break the FK contraint
< — — — — — — — — — — — — — — — — — — — — —
|
@ManyToOne(cascade = [CascadeType.DETACH])        |
lateinit var a: A                                 |
|
@ManyToOne                                        |
lateinit var b: B                                 |
|
@ManyToOne(cascade = [CascadeType.DETACH])  — — — |
lateinit var c: C
}
Перемещение поля c вверх по нарушит ограничение внешнего ключа.
В производственной среде именно по этой причине мы указываем схему с помощью собственных операторов создания и обновления. Этот пример относится только к нашей тестовой настройке.

Подробнее здесь: https://stackoverflow.com/questions/787 ... r-in-jpa-e
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «JAVA»