▶ 멱등성
연산을 여러 번 적용하더라도 결과가 달라지지 않는 성질을 의미한다.
POST와 PUT은 어떻게 다를까?
REST 리소스를 몇 번씩 PUT해도 똑같지만 POST는 매번 가져오는 것이 다르다.
▶ Map을 활용한 query
@GetMapping("param")
public String param(@RequestParam Map<String, String> Param){
StringBuilder mydata = new StringBuilder();
Param.entrySet().forEach(entry->{
System.out.println(entry.getKey());
System.out.println(entry.getValue());
System.out.println("\n");
mydata.append(entry.getKey()+" -> "+ entry.getValue()+"\n");
});
return mydata.toString();
}
▶ JSON 안에 JSON
package com.service.service_case.Controller.DtoData;
import com.fasterxml.jackson.databind.PropertyNamingStrategies;
import com.fasterxml.jackson.databind.annotation.JsonNaming;
import lombok.Getter;
import lombok.Setter;
import java.util.List;
@Getter
@Setter
@JsonNaming(value = PropertyNamingStrategies.SnakeCaseStrategy.class)
public class DtoMember {
private String email_address;
private int birth;
private List<HobbyDto> HobbyDtoList;
@Override
public String toString() {
return "DtoMember{" +
"email_address='" + email_address + '\'' +
", birth=" + birth +
", HobbyDtoList=" + HobbyDtoList +
'}';
}
}

과제로는 h2콘솔을 연결해서 CRUD하는 작업이었는데, 생각보다 JOIN테이블 구현하기가 안 되는 거다... 계속 null값이 들어가서 양방향 설정을 잘 못한 줄 알고 계속 거기만 손댔는데 알고보니 @RequestBody를 빼먹은 것이었다...하하

JPA 다대일(N:1)+일대다(1:N)
[JPA] @OneToMany, 일대다[1:N] 관계
JPA - 연관 관계 매핑 너무 은혜로운 글이다...
One To Many & Many To One Relationship
JPA 양방향 Entity 무한재귀 문제해결
Jackson Annotation 관련 사항
기본 키 매핑
id값
1. @GeneratedValue (strategy=IDENTITY) 1씩 증가
2. @GeneratedValue(strategy=SEQUENCE) 제네레이터 생성
즉시 로딩과 지연 로딩(FetchType.LAZY or EAGER)
아래는 작성 코드!
// Member.java
@OneToMany(mappedBy = "member", fetch = FetchType.LAZY)
private List<Hobby> hobby = new ArrayList<>();
// Hobby.java
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "member_id") // 멤버id값 이름 설정
private Member member;
public Hobby(HobbyDto hobbyDto) {
this.name = hobbyDto.getName();
this.category = hobbyDto.getCategory();
}
public void setMember(Member member) {
if(this.member != null) this.member.getHobby().remove(this);
this.member = member;
member.getHobby().add(this);
System.out.println(member.getHobby().get(0));
}
SAVE 💾
저번주도 그렇고 오늘도 그렇고 너무 사소한 걸로 시간을 많이 허비해서 정말 피눈물난다... 그렇지만 그런 과정에서 배우는 게 있었으니까 위안을 삼자~!!