JPA 연관관계를 이용한 폴더 테이블 설계 및 외래키

텅텅텅·2022년 6월 12일
0

Spring TIL

목록 보기
6/13

회원과 폴더의 관계로 예를들어 설명

<회원 Entity관점>
-회원 1명이 여러개의 폴더를 가질 수 있음
-@OneToMany 로 설정

public class User{
	@OneToMany
    private List<Folder> folders;
}

-회원이 가진 폴더들을 조회

List<Folder> folders = user.getFolders();

<폴더 Entity 관점>
-폴더 여러 개를 회원 명이 가질 수 있음
-@ManyToOne"

public class Folder{
	@ManyToOne
    private User user;
}

-폴더를 소유한 회원을 조회

folder.getUser();

*Entity객체가 객체를 가지고 있을때를 "Has-a 관계"라고 한다.

<외래키?>

외래키가 없다면 연관관계에서 없는 ID 값을 입력했을때 입력된 값으로 새로 데이터가 저장됨.
외래키가 형성되어 있다면, 연관관계에서 받아온 아이디데이터에 입력받은 ID값이 없다면
에러를 냄 (데이터의 정확성을 해결)

<JPA 연관관계 Column 설정방법>

@JoinColumn 내 속성값 설정
nullable: 외래키 null 허용 여부
-false(default)
-ex) 폴더는 회원에 의해서만 만들어짐. User 값이 필수
-true
-ex) 공용폴더의 경우, 폴더의 user 객체를 null로 설정하기로 함

profile
아무것도모르오

0개의 댓글