Это однонаправленная ассоциация @ManyToOne. Просто пример того, как выглядит мой код:
TB_FRUIT
(pk) id_fruit, id_color
(fk) id_color
TB_JUICE
(pk) id_juice, id_color
(f) id_fruit
(fk) id_fruit, id_color
JuiceID
@Column(name = "ID_COLOR")
private Long idColor;
@Column(name = "ID_JUICE")
private Long idJuice;
Сущность сущности
@EmbeddedId
private JuiceID id;
@MapsId("ID_COLOR")
@ManyToOne(fetch = FetchType.EAGER, cascade = { CascadeType.PERSIST })
@JoinColumns(value = {
@JoinColumn(name = "ID_COLOR", referencedColumnName = "ID_COLOR"),
@JoinColumn(name = "ID_FRUIT", referencedColumnName = "ID_FRUIT")
})
private Fruit fruit;
Вставить скрипт, сгенерированный JPA
INSERT INTO TB_JUICE (
ID_JUICE,
ID_COLOR) VALUES (?, ?)
Почему JPA не включает столбец ID_FRUIT во вставку?