일대일 조인테이블
@Entity
public class Child {
@Id
@GeneratedValue
@Column(name = "child_id")
private Long id;
@OneToOne(mappedBy = "child")
private Parent parent;
}
@Entity
@AllArgsConstructor
@NoArgsConstructor
@Getter
@Setter
public class Parent {
@Id
@GeneratedValue
@Column(name = "parent_id")
private Long id;
private String name;
@OneToOne
@JoinTable(name = "joinTable1", joinColumns = @JoinColumn(name = "parent_id"), inverseJoinColumns = @JoinColumn(name = "child_id"))
private Child child;
}
@Test
@Transactional
@Commit
public void 일대일조인테이블(){
Parent p = new Parent();
Child c = new Child();
p.setChild(c);
em.persist(p);
em.persist(c);
}
- 각각에 onetoone을 적어주고 연관관계의 주인이 아닌쪽에 maddedby="연관관계의주인이아닌쪽"을써준다
- 한쪽에 jointable(name, joincolumns, inversejoincolumns) 를 적어준다
name : 조인테이블명 // -> 자동으로 jointable1에 해당하는 테이블이 디비에 생긴다
joincolumn = 현재 엔티티가 참조하는 외래키
inversejoincolumn = 반대방향 엔티티가 참조하는 외래키