로그 레벨 순서
TRACE > DEBUG > INFO > WARN > ERROR > FATAL
종류 | 설명 |
TRACE | DEBUG보다 조금 더 상세한 정보 |
DEBUG | 프로그램을 디버깅하기 위한 정보 지정 |
INFO | 상태 변경과 같은 정보성 메시지 |
WARN | 처리 가능한 문제, 향후 에러가 발생할 수 있는 경고성 메시지 |
ERROR | 요청을 처리하는 중 문제가 발생한 경우 |
FATAL | 아주 심각한 에러가 발생한 상태, 애플리케이션 작동이 불가능할 경우 |
JPA에서 lombok의 @Data
@Getter, @Setter, @EqualsAndHashCode, @ToString, @RequiredArgsConstructor, @AllArgsConstructor 가 포함된 어노테이션
lombok이 제공하는 @Data 어노테이션은 여러 기능을 한번에 제공하기 때문에 유용하게 사용되지만, JPA에서 N:1 양방향 참조시 @ToString을 사용하면 순환 참조 문제가 발생할 수 있다.
연관관계에 의해 무한 참조가 걸려 StackOverFlowError* 가 발생할 수 있기 때문에, @ToString(exclude = " ") 속성을 사용하여 특정 항목을 제외시키거나 @Data가 아닌 필요한 어노테이션만 사용하는 것을 권장한다.
*StackOverFlowError : 재귀 호출이 너무 깊게 이뤄지거나 메모리 스택이 초과될 때 발생하는 오류
연관관계 매핑
객체의 참조와 외래 키를 매핑하는 것 (SQL JOIN 과 비슷한 개념)
종류 | 설명 |
단방향 관계 | 두 엔티티가 관계를 맺을 때, 한쪽의 엔티티만 참조 |
양방향 관계 | 두 엔티티가 관계를 맺을 때, 양쪽이 서로 참조 |
연관관계 매핑에서의 다중성
종류 | 설명 |
@ManyToOne | 다대일 (N : 1) |
@OneToMany | 일대다 (1 : N) |
@OneToOne | 일대일 (1 : 1) |
@ManyToMany* | 다대다 (N : M) |
* @ManyToMany : 사용 지양. 다대다로 자동 생성된 중간 테이블은 두 객체의 테이블 외래 키만 저장되기 때문에 문제가 될 확률이 높다. 일대다, 다대일로 풀어서 만드는 것(중간에 매핑 테이블을 만드는 것)을 권장한다.
참고 블로그
[JPA] 연관관계 매핑 알아보기 (@ManyToOne, @OneToMany, @OneToOne, @ManyToMany) (tistory.com)
'BACK > Spring' 카테고리의 다른 글
Spring 09 (0) | 2024.07.29 |
---|---|
Spring 08 (1) | 2024.07.24 |
Spring 06 (0) | 2024.07.19 |
Spring 05 - JdbcDaoSupport (0) | 2024.07.16 |
Spring 04 - annotation (0) | 2024.07.15 |