2023년 07월 06일

@VERO
Created Date · 2023년 07월 06일 01:07
Last Updated Date · 2023년 07월 07일 01:07

LOG

  • 점심으로 라면을 먹었다. 싸다김밥의 싸다는 cheap이 아니라 wrap이었다고 한다. by 바론
  • 선호, 수민 언니, 세진과 뚝섬에서 파스타를 먹었다. 사실 그렇게 맛있진 않았다..ㅋㅋㅋ 토마토 파스타가 맛이 없기 쉽지 않은데

배운 것

  • repository flush를 하면 dirty checking을 확인할 수 있다.

  • @OneToMany(mappedBy = "필드이름") 은 '다' 쪽의 외래 키 관리자를 명시해주는 것.

  • 연관 관계의 주인을 정한다는 것은 외래 키 관리자를 선택하는 것. 비즈니스 중요도로 접근하면 안 된다. 다대일, 일대다 관계에서는 항상 '다' 쪽이 외래 키를 가진다.

  • 연관 관계의 외래키 관리자가 아닌 경우, 읽기 권한만 갖는다. Station과 Line의 연관 관계를 맺고 싶은 경우, 다음과 같이 사용한다.

다음은 예외가 발생하지 않는다. (Station 쓰기가 안 됨)

@Test  
void save() {  
   final Line line = new Line("2호선");  
   line.addStation(new Station("신도림역"));  
   lines.save(line);  
   lines.flush();  
}

다음 방법은 스택 오버플로우가 발생할 위험이 있다.

// Line.class
public void addStation(final Station station) {  
   station.setLine(this);  
   stations.add(station);  
}

// Station.class
public void setLine(final Line line) {  
   this.line = line;  
   line.getStations().add(this);  // 여기서 발생
}

// 다음처럼 바꾸면 된다.
public void setLine(final Line line) {
	this.line = line;
	final List<Station> stations = line.getStations();
	
	if(!stations.contains(this)) {
		stations.add(this);
	}
}
  • 연관 관계 매핑을 안 하면 중간 테이블이 생긴다.
Hibernate: 
    
create table member_favorites (
   member_id bigint not null,
	favorites_id bigint not null
)

연관 관계 매핑을 하면 '다' 쪽에 컬럼이 추가된다.

create table favorite (
   id bigint generated by default as identity,
	member_id bigint,
	primary key (id)
)

Hibernate: 
    
alter table favorite 
   add constraint FK5w3q9ljpthkixo71hetx3ired 
   foreign key (member_id) 
   references member

연관 관계 공부하려면 @JoinColumn 파보면 좋을 듯 by 제이슨

일대다 단방향 매핑보다는 다대일 양방향 매핑을 권장한다고 한다? (JPA 관점) but 실무 관점에서는 일대다 단방향을 쓰는 경우도 있다.

궁금한 점

느낀 점

  • 아침을 먹고 가니까 좋다.
  • 로고 디자인 좀 더 깔끔하게 해봐야겠다.