야자반 숙제 관련
1.단방향(oneToMany / ManyToOne)
-게시글 1 : 댓글 N -> post에만 연관관계 걸어보기(oneToMany) 원하는 대로 성공했으면(db에서 확인해보기) / post 연관관계 주석 처리 후 댓글에만 ManyToOne으로만 해보기
(JoinColumn에 무엇을 작성해야할지 생각하면서)
단방향 :
Join Colum
ex)ManyToOne , OneToMany
생성한다. mappedby를 적지 않는다.
2.양방향(oneToMany - ManyToOne)
-게시글 1: 댓글 N -> 양쪽 다 걸고 mappedBy와 JoinColumn은 어디다 해야하는지 직접 찾아보고 적용해보고 h2디비에 어떻게 쌓이는지 확인하기
DB상에서는 post에서는 comment키가 없지만 comment의 db상에서는 postid라는 외래키를 들고있다.
mapped by 와 joincolum 사용위치 잘 알아두기!!
3.ManyToMany로 구현해보기(@JoinTable 사용)
-게시글 N: N - 좋아요 - N:N 댓글
*추가 - oneToMany - ManyToOne으로 풀어내보기(게시글-좋아요-댓글)
좋아요 구현시 N 게시글 N좋아요에 대해서 중간엔티티를 받아서 생성한다.
매니투 매니를 쓰면 객체지향적으로 수정하기 어렵다. !!
4.Cascade , ophanremoval 사용하면서 엔티티가 어떻게 저장,삭제되는지 직접 확인해보기
**** ophanremoval을 사용하면 내가 사용한 하위객체를 삭제하고 싶을때!!
All = persist + remove가 같이 있는 기능으로 post 생성을 했을때 comment를 빈엔티티를 생성한다.
commentRepository를 안쓰고도 삭제가능하다.
post.getcommentlist().get(i).reomve()
orphanRemoval=true vs CascadeType.REMOVE
Parent가 삭제 되었을 때 Child도 함께 삭제시키는 역할을 수행하는 점에선 동일
다른점은,
관계를 끊는 것에 대한 응답!
만약 Parent의 Child 값을 null을 주었다고 가정
orphanRemoval=true는 관계가 끊어진 child를 자동으로 제거한다.
CascadeType.REMOVE는 관계가 끊어진 child를 자동 제거하지 않는다.
관계가 끊어졌다는 것을 제거로 보지 않기 때문에
https://modimodi.tistory.com/22
5.@id @GenerateValue(strategy = GenerationType.IDENTITY) , AUTO의 차이점 직접 해보면서 경험해보기
Auto
전체 게시를을 id를 달다.
identity(게시물 댓글 각각 id)이게더 좋음.
6.회원 엔티티에 CITY,STREET,ZIPCODE는 (주소관련)은 별도의 클래스생성하여 @Embbeded , @Embeddable로 추가해보기
한객체의 여러정보를 넣고 싶을때
db에 하나 저장하는데 2개가 나옴
https://galid1.tistory.com/592
7.게시글의 카테고리를 @Enumerated 로 해보기
저장할때 EnumType.ORDINAL,STRING 에 따른 차이점 알아보기
-> 게시글 저장할때 카테고리로 숫자(0,1)로 넣어줘서 저장해보기, GAME,MUSIC처럼 Enum으로 넣어서 save해보기
카테고리, 남녀 , 중간에 변경불가 .. 그안에 있는 값만 사용할 수 있다.
ex) admin user, 남자여자
db에
Ordinal는 id가 들어감
String으로 하면 앞의 String이 들어감..
8.@transient 를 사용하여서 게시글의 댓글 수(size)를 객체에 저장해보기(DB저장 X)
-> db에 저장할 정도까지는 아닌데, 객체는 들고 있음
객체지향적으로 설계를 하기 위함 ex)조회수,, 하트수 등등
9.LAZY로딩 , EAGER로딩 사용해서 불러와보기
게시글-댓글 연관관계시 LAZY했을 떄 게시글만 불러왔을 때 쿼리가 어떻게 나가는지
-> 댓글을 불러오려면 어떻게 해야하는지
게시글-댓글 연관관계시 EAGER했을 떄 게시글만 불러왔을 때 쿼리가 어떻게 나가는지
즉시로딩은 연관관계를 다불러옴
지연로딩은 필요한거 한게만 불러옴..
Eager / N+1 문제
깃헙 액션에 대해서 알아보자!!
https://www.youtube.com/watch?v=uBOdEEzjxzE
감귤선생..
https://bcp0109.tistory.com/363
S3
aws bucket을 만들고 권한 설정을하고 S3를 만든다음에!!
@Requestpart