원문 : https://getinthere.tistory.com/23 (새창이동)
영상 : 너튜브 (새창이동) , 영상18번
겟인데어 님의 윈도우 강좌를 맥으로 해보면서 시행착오를 적습니다.
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
영상 : 너튜브 (새창이동) , 영상18번
겟인데어 님의 윈도우 강좌를 맥으로 해보면서 시행착오를 적습니다.
0. 사전준비
@Entity 어노테이션을 사용하기 위해 주석처리했던 jpa 디펜던시를 주석해제 한다.<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
1. Blog 테이블 만들기 (User, Board, Reply)
User 테이블 생성 실습, Charset 잘 적용 되었는지 확인
Board 테이블 생성
Reply 테이블 생성
연관관계의 주인 - 22강
2. 연관관계 만들기
@ManyToOne : 사용
@OneToMany : 사용
@OneToOne : 사용
@ManyToMany
ManyToMany는 사용하지 않는다. 그 이유는 서로의 primary key로만 중간 테이블을 생성해주는데, 날짜나 시간 다른 필드들이 필요할 수 있기 때문에,
내가 중간 테이블을 직접만들고 @OneToMany, @OneToMany를 사용한다. 아래 링크 확인
https://ict-nroo.tistory.com/127
3. 더미 데이터 insert 24강
@DynamicInsert insert할때 null 인 필드 제외
user.setRole(RoleType.USER);
한줄로 저장이 가능하네...
4. 더미 데이터 select 및 응답 27강
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 pageable5. 더미 데이터 update 28강
6. 더미 데이터 delete
삭제 완료.
Exception 처리하기 - 에러 페이지를 만들어 보자 31강
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
댓글
댓글 쓰기