회원과 폴더의 관계로 예를들어 설명
<회원 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로 설정하기로 함