Два разных внешних ключа объединяются в один - PullRequest
0 голосов
/ 26 марта 2020

У меня есть такая структура таблицы:

Структура таблицы

Зависимости являются однонаправленными.

Мои классы POJO выглядят так:

class T1 {

@EmbeddedId T1PK t1Pk;

String c13;
// getter setter
}

@Embeddable
class T1PK {

String c11;
String c12;

// getter setters hashCode equals
}

class T3 {
@Id String T31
String T32

// getter setter
}

@Embeddable
class T2PK {

T1PK t1Pk;
String c31;

// getter setters hashCode equals
}

class T2 {

@EmbeddedId T2PK t2Pk;

@MapsId("c31")
@JoinColumn(name = "c31", referencedColumnName = "c31", foreignKey = @ForeignKey(name = "FK_32"))
@OneToOne
private T3 t3;

@MapsId("t1Pk")
@JoinColumns(foreignKey = @ForeignKey(name = "FK_12"), value = {
            @JoinColumn(name = "c11", referencedColumnName = "c11"),
            @JoinColumn(name = "c12", referencedColumnName = "c12") })
@OneToOne
private T1 t1;

// getter setter

}

Когда я запускаю мое приложение для весенней загрузки, встречается следующая ошибка

Foreign key (FKakdpaxm8kl8mv0ld210dg7mcw:t2 [c11,c12,c31])) must have same number of columns as the referenced primary key (t3 [t31])

Однако, если я просто закомментирую зависимость какой-либо одной таблицы, t3 или t1. Создается правильный внешний ключ с указанным именем FK.

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