У меня есть эта схема базы данных:
Table_A [1] -> [n] Table_C и Table_B [1] -> [n] Table_C
Теперь PrimaryKey Table_C - это EmbeddedId с внешним ключом по сравнению с Table_A и внешним ключом по сравнению с Table_B. Как отметить эту аннотацию?
Мое решение:
@Entity
public class TableA{
@Id @column(name="ID")
public int id;
@OneToMany(mappedBy="tableA")
public List<TableC> listOftableC;
}
@Entity
public class TableB{
@Id @column(name="ID")
public String id;
@OneToMany(mappedBy="tableB")
public List<TableC> listOftableC;
}
@Entity
public class TableC{
@EmbeddedId
public TableCPK idComposite;
}
@Embeddable
public class TableCPK{
@ManyToOne
@JoinColumn(name = "ID_TABLE_A", referencedColumnName="ID")
public TableA tableA;
@ManyToOne
@JoinColumn(name = "ID_TABLE_B", referencedColumnName="ID")
public TableA tableB;
}