Я никогда не видел ничего подобного раньше
EntityA
@Id
long id
@Column(name ="field1")
String field1
@Column(name ="field2")
String field2
@IdClass(compositePK.class)
EntityB
@Id
String field1
@Id
String field2
@OneToOne(fetch = FetchType.EAGER, cascade = CascadeType.ALL)
EntityA myEntityA
Хорошо, все в порядке, tableB
необходимо иметь EntityA
в качестве внешнего ключа, но определено для идентификатора, а не для field1,field2
.
Я получаю сообщение об ошибке типа
Внешний ключ (FK74D979395D87E41E: EntityA [id])) должен иметь то же количество столбцов, что и первичный ключ, на который есть ссылка (EntityA [field1, field2])
Я понимаю, что для режима гибернации требовалось, чтобы FK был таким же, как и для PK, но я не могу сделать это, entityB
PK должен оставаться field1,field2
Я не могу изменить EntityA
длямомент.