开发者

one to multiple many relationship

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

Record开发者_StackOverflow中文版s 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 T2 to T1. You'd map both on T2 side:

@Entity
@Table(name = "Table2")
public class T2 {
  @Id // map whatever generator you'd like
  private long id;

  @ManyToOne
  @JoinColumn(name="code_col_1")
  private T1 t1_code1;

  @ManyToOne
  @JoinColumn(name="code_col_2")
  private T1 t1_code2;
}

Mapping the reverse one-to-many associations from T1 to T2 is 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.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜