1. Blog 테이블 만들기 (User, Board, Reply)
User테이블
Board테이블
Reply테이블
2. 연관관계 만들기
@ManyToOne
@OneToMany
@OneToOne
@ManyToMany
ManyToMany는 사용하지 않는다. 그 이유는 서로의 primary key로만 중간 테이블을 생성해주는데, 날짜나 시간 다른 필드들이 필요할 수 있기 때문에, 내가 중간 테이블을 직접만들고 @OneToMany, @OneToMany를 사용한다.
https://ict-nroo.tistory.com/127
[JPA] @ManyToMany, 다대다[N:M] 관계
다대다[N:M] 실무에선 사용하지 않는 것을 추천한다. 사용하면 안되는 이유를 학습하자. 관계형 데이터베이스는 정규화된 테이블 2개로 다대다 관계를 표현할 수 없다. 연결 테이블(조인 테이블)�
ict-nroo.tistory.com
3. 더미 데이터 insert
@DynamicInsert insert할때 null 인 필드 제외
User클래스에 선언된 RoleType 확인
4. 더미 데이터 select 및 응답
User user = userRepository.findById(id).orElseThrow(new Supplier<IllegalArgumentException>() {
@Override
public IllegalArgumentException get() {
return new IllegalArgumentException("해당 사용자가 없습니다.");
}
});
@PageableDefault(size=2, sort="id", direction = Sort.Direction.DESC) Pageable pageable
5. 더미 데이터 update
https://ict-nroo.tistory.com/130
[JPA] 영속성 컨텍스트와 플러시 이해하기
영속성 컨텍스트 JPA를 공부할 때 가장 중요한게 객체와 관계형 데이터베이스를 매핑하는 것(Object Relational Mapping) 과 영속성 컨텍스트를 이해하는 것 이다. 두가지 개념은 꼭 알고 JPA를 활용하자.
ict-nroo.tistory.com
6. 더미 데이터 delete
7. 무한 참조 방지하기
(1) Entity로 받고 Json직렬화 하기 전에 DTO 생성후 복사하기
BeanUtils.copyProperties(A,B)
(2) 처음부터 DTO로 DB에서 받기
(3) @JsonIgnore
(4) @JsonIgnoreProperties({"board"})
(5) @JsonBackReference @JsonManagedReference
참고
https://dublin-java.tistory.com/32
JPA Entity를 JSON으로 변환할 때 발생할 수 있는 문제점과 해결방법
이번에 프로젝트를 진행하면서 엔티티를 json으로 변환 후에 view로 전달해주는 과정에서 문제가 발생했었습니다. 일단 결론부터 말씀드리자면 DTO를 따로 만들어서 서비스에서 엔티티 대신 DTO를
dublin-java.tistory.com
'springboot블로그만들기(youtube강좌)' 카테고리의 다른 글
스프링부트 강좌 41강(블로그 프로젝트) - DB격리수준 READ COMMIT (0) | 2021.07.04 |
---|---|
스프링부트 강좌 32강(블로그 프로젝트) - 스프링 기본파싱전략과 json통신 (0) | 2021.07.04 |
스프링부트 with JPA 블로그 6강 - yaml 설정스프링부트 with JPA 블로그 (0) | 2021.07.03 |
스프링부트 강좌 10강(블로그 프로젝트) - http1.1 요청방식 (0) | 2021.06.29 |
스프링부트 강좌 9강(블로그 프로젝트) - Git의 3가지 영역 (0) | 2021.06.29 |