내일배움캠프 D+57: 0613

enyo9rt·2022년 6월 13일

TIL-S

목록 보기
38/79

🌌 실시간 강의

▶ 멱등성
연산을 여러 번 적용하더라도 결과가 달라지지 않는 성질을 의미한다.
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 💾

저번주도 그렇고 오늘도 그렇고 너무 사소한 걸로 시간을 많이 허비해서 정말 피눈물난다... 그렇지만 그런 과정에서 배우는 게 있었으니까 위안을 삼자~!!

0개의 댓글