-
Notifications
You must be signed in to change notification settings - Fork 0
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[FEAT] ERD에 따른 Entity 구현 #20
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
커칭~ 수고했어👍
EXAMPLE, | ||
; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
EXAMPLE 대신 실제로 사용할 연애
같은 카테고리를 넣어둬도 좋을 것 같아요~
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
실제 카테고리가 정해지고 나서 해도 될것 같아서 일단 보류했습니다~
다음에 정해지고 API 구현하면서 추가하도록 할께요!
말씀해주신 리뷰 포인트의 Table not found 에러는 H2Dialect를 사용하여 해결할 수 있습니다~ MODE=MYSQL 로 설정되어 있어서 mysql 언어가 호환되어야할 거 같은데 왜 안되는지는 모르겠습니다. |
@PgmJun |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
리뷰 확인 부탁드립니다~!
@Column(nullable = false) | ||
private String nickname; | ||
|
||
@ManyToOne(optional = false) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
의견) N+1 쿼리 발생으로 인한 성능 저하를 최대한 방지하기 위해 LAZY_LOADING 설정이 필요할 것 같습니다~
FetchType을 LAZY로 설정해도 N+1이 발생하지만 쿼리 발생 시점에 모든 데이터에 대해 N+1이 발생하는 EAGER 로딩보다는 나을 것 같아요!
이후에 JOIN이 필요한 부분에 대해서도 fetch join 로 처리하면 될 것 같구요 ㅎㅎ
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
이와 관련해서 LazyInitializationException
을 방지하기 위해,
Service Layer에서는 다른 엔티티를 불러올 때 @Transactional
을 사용하도록 하겠습니다~
@Column(nullable = false) | ||
private String content; | ||
|
||
@ManyToOne(optional = false) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
여기두요!
@ManyToOne(optional = false) | ||
@JoinColumn(name = "room_id") | ||
private Room room; | ||
|
||
@ManyToOne(optional = false) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
여기두요~
jpa: | ||
properties: | ||
hibernate: | ||
format_sql: true | ||
highlight_sql: true | ||
show_sql: true | ||
database-platform: org.hibernate.dialect.MySQL8Dialect | ||
database-platform: org.hibernate.dialect.H2Dialect |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
말씀해주신 리뷰 포인트의 Table not found 에러는 H2Dialect를 사용하여 해결할 수 있습니다~ MySQL8Dialect를 H2Dialect로 변경해주시면 문제가 발생하지 않습니다.
MODE=MYSQL 로 설정되어 있어서 mysql 언어가 호환되어야할 거 같은데 왜 안되는지는 모르겠습니다. 문서 확인해서 공유 드릴게요!
이 문제 원인을 H2 공식문서에서 찾을 수 있엇습니다.
Compability Mode를 통해 다른 데이터베이스의 언어를 H2에서 사용할 수 있는데요.
현재는 MODE=MySQL;
로만 설정이 되어있네요.
그런데 MySQL의 SQL을 사용하려면 MODE=MySQL;
뿐만 아니라 MODE=MySQL;DATABASE_TO_LOWER=TRUE;
로 설정해주어야 한다고 합니다.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
수고하셨습니다~ 커촨
Issue Number
#19
As-Is
ERD에 맞추어 사용할 Entity 필요
To-Be
ERD에 맞추어 Entity 생성
Check List
Test Screenshot
(Optional) Additional Description
깃 메시지 컨벤션
리뷰 포인트
@Entity
,@ManyToOne
에 추가적으로 들어가야 할 옵션이 필요한가?테스트 환경 재구성 필요 (이번 PR or 다음 PR)