Hibernate Jpa Аннотация: Проблема со встроенным идентификатором

У меня есть эта схема базы данных:

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;
}
5
задан giulius 6 July 2011 в 12:16
поделиться