JpaBaseConfiguration$JpaWebConfiguration : spring.jpa.open-in-view is enabled by default.
Therefore, database queries may be performed during view rendering.
Explicitly configure spring.jpa.open-in-view to disable this warning
해당 경고 메시지는 나오는 이유
해당 경고 메시지는 spring.jpa.open-in-view 설정이 활성화되어 있을 때 발생하는 경고 메시지입니다. 이 설정은 기본적으로 true로 설정되어 있어서, 뷰 렌더링 중에도 데이터베이스 세션이 열려 있을 수 있다는 점을 알려주는 메시지입니다.
그럼 어떤 문제가 있을까??
성능 문제
spring.jpa.open-in-view가 활성화된 경우 데이터베이스 연결이 뷰 렌더링 단계 중에도 열린 상태로 유지됩니다. 이로 인해 지연 로딩이 발생하는 경우 불필요한 쿼리가 발생할 수 있습니다.
예를 들어, '@OneToMany' 또는 '@ManyToOne'를 사용한 데이터를 가져오면 불필요한 쿼리들이 실행되는 문제가 발생할 수 있습니다.
데이터 일관성 문제
해당 경고는 데이터베이스 세션이 뷰 렌더링 중에 열려 있음을 나타냅니다. 이 상태에서 뷰를 렌더링하는 동안 엔티티를 수정하거나 데이터베이스에 쿼리를 실행할 경우 데이터 일관성 문제가 발생할 수 있습니다.
단순히 spring.jpa.open-in-view를 비활성화하면 어떻게 될까요??
'spring.jpa.open-in-view'를 비활성화하면 뷰 렌더링 중에 데이터베이스랑 통신이 원활하지 않아서 문제가 발생할 수 있습니다. 뷰에서 지연 로딩된 엔티티에 접근하려고 할 때, 데이터베이스 세션이 닫혀 있어 데이터베이스에 접근할 수 없으므로 LazyInitializationException예외가 발생합니다.
해결 방법
FetchType, Batch Processing 등등 JPA를 열심히 공부해서 잘 사용해야 합니다.ㅠㅠㅠㅠㅠㅠㅠ 화이팅!!
'Spring' 카테고리의 다른 글
[Spring Boot] 액추에이터(Actuator) 문제 및 해결 방법 (2) | 2024.10.16 |
---|---|
[Spring Boot] 액추에이터(Actuator) 정리 (2) | 2024.10.16 |
[Spring Boot] 다양한 외부 설정 방법 #4 - @Profile (1) | 2024.10.15 |
[Spring Boot] 다양한 외부 설정 방법 #2 - Environment (2) | 2024.10.13 |
[Spring Boot] 다양한 외부 설정 방법 #1 (2) | 2024.10.13 |