간단한 메모장? 기능 만들기
지금까지 User를 가지고 요리조리 만들어보았다.
이젠 간단한 메모장을 만들어보자 ..
간단히 Post 클래스에
id, description, user를 만들었다.
우선 만들기 전에 생각해야 할 것이 있다.
한명이 게시글 여러개를 만들수 있고, 한개만 만들 수도 있고, 만들지 않을 수도 있다.
즉 1: 0 or N 이다.
또한 게시글은 있지만 글쓴이는 없을 수가 없다. 이런 면에서는
부모자식 관계라고 해도 될것같다.
한줄로 표현하면
유저 : 게시글 - > 1 : 0~N - > Main : Sub -> Parents : Child 라고 생각하면 될 것 같다.
@Entity
@AllArgsConstructor
@NoArgsConstructor
public class Post {
@Id
@GeneratedValue
private Integer id;
private String description;
@JsonIgnore
private User user;
매개변수 없는 생성자, 매개변수 있는 생성자, Jpa가 관리하게 해주는 entity , 게더세더까지 어노테이션을 넣고
기본키설정과 생성전략?을 넣어서 id값을 만들고, 간단한 메모와 user를 사용하는데 user의 정보들을 노출시키지 않게 하기 위해 jsonignore를 사용하였다. 1ㄷN 을 사용한다하기위해 ManyToOne을 넣었다 .
LAZY는 지연 로딩 방식으로 user의 엔티티를 조회 할때 post엔티티가 같이 로딩되는 것이 아니라 post 데이터가 로딩 되는 시점에 필요한 user의 데이터를 가지고오는 방식을 선언 해준것이다.
이렇게 하고 user도메인으로 가서
private List<Post> posts;
이렇게 추가해주면 끝이다.
아 참
data.sql 파일로 가서
insert into post values (10002, '약오르지', 90001);
를 테스트데이터를 입력해주면 완성.
참고로 90001 은 user의 기본키와 외래키가 맺어져 있는 것이기 때문에 user의 id값과 맞춰야 한다.
나는 막 써놨더니 조금 말그대로 삽질 했다 ㅋㅋ..