조인테이블

김민지·2022년 10월 25일
0

JPA

목록 보기
13/27

일대일 조인테이블

@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 = 반대방향 엔티티가 참조하는 외래키
profile
안녕하세요!

0개의 댓글