У меня есть одна таблица «A» с тремя полями (a1, a2, a3) составного ПК, и два из них (a1, a2) представляют собой составной FK для другой таблицы «B», поэтому я использую два @Embeddable классы для достижения этого:
@Entity
@Table(name = "A")
public class A implements java.io.Serializable {
private static final long serialVersionUID = 1L;
@EmbeddedId
private APk aPk;
@MapsId(aPartPk)
@ManyToOne
@JoinColumn(name = "a1")
@JoinColumn(name = "a2")
private B b;
'''other columns'''
}
@Embeddable
public class APk implements java.io.Serializable {
private static final long serialVersionUID = 1L;
private APartPk aPartPk;
private String a3;
}
@Embeddable
public class APartPk implements java.io.Serializable {
private static final long serialVersionUID = 1L;
private String a1;
private String a2;
}
@Entity
@Table(name = "B")
public class B implements java.io.Serializable {
private static final long serialVersionUID = 1L;
@EmbeddedId
private APartPk aPartPk;
'''other columns'''
}
Но теперь у меня есть новое требование, что мне нужно сделать еще два поля (a1, a3) как еще один составной FK и отнести их к таблице C, это Есть ли решение для этого? Любые комментарии будут приветствоваться.