Consider two tables as mentioned below –
Table1 (id_col, name_col)
Table2 (uid_col, code_col_1, code_col_2)
where,
id_col is primary key for Table1
uid_col is primary key for Table2
and, id_col has one to many relationship with both code_col_1 and code_col_2
Records could look like:-
Table1
1, xxx
2, yyy
Table2
11, 1, 2
12, 2, 1
12, 2, 2
How will the JPA look like in following classes?
@Entity
@Table(name = "Table1")
public class T1 {
@OneToMany(targetEntity=T2.class, mappedBy="??????", cascade=CascadeType.ALL)
private List<T2> t2; //???not sure about this
}
@Entity
@Table(name = "Table2")
public class T2 {
@ManyToOne
@JoinColumn(name="code_col_1")
private T1 t1; //???not sure what goes here
}
This is not a one-to-many association; rather, it’s two separate many-to-one associations from
T2toT1. You’d map both onT2side:Mapping the reverse one-to-many associations from
T1toT2is not a good idea because you risk having (some of) the same elements in both collections which will result in all sorts of troubles during inserts / deletes.