
JPA @Filter 적용 문제와 해결: Hibernate 세션 활용법
·
Framework/SpringBoot
soft delete를 이용하여 사용자 삭제를 진행할 때,조회 시, 엔티티에 걸어둔 @Filter어노테이션이 작동하지 않는 문제가 있었다. @Filter(name = "activeUserFilter", condition = "deleted_at is null")@FilterDef(name = "activeUserFilter") 🔍 문제 원인Hibernate의 @Filter은 엔티티에 선언되더라도 모든 세션이나 쿼리에 자동 적용되지 않는다. 필터는 세션 단위로 작동한다. 따라서 해당 세션에서 필터를 명시적으로 활성화해야 한다. 엔티티 매니저는 JPA 표준 인터페이스로 데이터 베이스와 상호작용할 수 있다.하지만 Hibernate는 JPA 구현체로, JPA 표준과, Hibernate 고유 기능도 제공한다...