Notice
Recent Posts
Recent Comments
Link
«   2026/09   »
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30
Archives
Today
Total
관리 메뉴

helloworld

간단한 메모장? 기능 만들기 본문

restful

간단한 메모장? 기능 만들기

hellojava 2023. 8. 24. 23:38

지금까지 User를 가지고 요리조리 만들어보았다.

 

이젠 간단한 메모장을 만들어보자 ..

 

간단히 Post 클래스에

id, description, user를 만들었다.

 

우선 만들기 전에 생각해야 할 것이 있다.

 

한명이 게시글 여러개를 만들수 있고, 한개만 만들 수도 있고, 만들지 않을 수도 있다.

즉 1: 0 or N 이다.

 

또한 게시글은 있지만 글쓴이는 없을 수가 없다. 이런 면에서는 

 

부모자식 관계라고 해도 될것같다.

 

한줄로 표현하면

 

유저 : 게시글 - > 1 : 0~N - > Main : Sub -> Parents : Child 라고 생각하면 될 것 같다.

 

@Data
@Entity
@AllArgsConstructor
@NoArgsConstructor
public class Post {
@Id
@GeneratedValue
private Integer id;

private String description;
@ManyToOne(fetch = FetchType.LAZY)
@JsonIgnore
private User user;

매개변수 없는 생성자, 매개변수 있는 생성자, Jpa가 관리하게 해주는 entity , 게더세더까지 어노테이션을 넣고

 

기본키설정과 생성전략?을 넣어서 id값을 만들고, 간단한 메모와 user를 사용하는데 user의 정보들을 노출시키지 않게 하기 위해 jsonignore를 사용하였다.  1ㄷN 을 사용한다하기위해 ManyToOne을 넣었다 .

 

LAZY는 지연 로딩 방식으로 user의 엔티티를 조회 할때 post엔티티가 같이 로딩되는 것이 아니라 post 데이터가 로딩 되는 시점에 필요한 user의 데이터를 가지고오는 방식을 선언 해준것이다.

 

이렇게 하고 user도메인으로 가서

 

@OneToMany(mappedBy = "user")
private List<Post> posts;

이렇게 추가해주면 끝이다. 

아 참 

data.sql 파일로 가서

 

insert into post values (10001, 메롱', 90001);
insert into post values (10002, '약오르지', 90001);

를 테스트데이터를 입력해주면 완성.

참고로 90001 은 user의 기본키와 외래키가 맺어져 있는 것이기 때문에 user의 id값과 맞춰야 한다.

나는 막 써놨더니 조금 말그대로 삽질 했다 ㅋㅋ..

'restful' 카테고리의 다른 글

jpa/ insert  (0) 2023.08.24
jpa / delete 기능  (0) 2023.08.24
jpa / id값으로 유저정보 가져오기  (0) 2023.08.24
jpa crud기능 사용(select)  (0) 2023.08.24
jpa/ h2  (0) 2023.08.24