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 실무 관점에서는 일대다 단방향을 쓰는 경우도 있다.
궁금한 점
느낀 점
- 아침을 먹고 가니까 좋다.
- 로고 디자인 좀 더 깔끔하게 해봐야겠다.