@where에 대해

213kky·2024년 1월 23일

지금 진행중인 프로젝트는 데이터 삭제를 논리 삭제(softDelete) 방식으로 진행되고 있는데 entity에

@SQLDelete
@Where

이런 어노테이션들이 붙어있다.

@SQLDelete는 쿼리를 입력하여 지우는 방식을 입력하려는 용도로 사용되고 있고, @Where은 쿼리를 사용할 때 아래 Hibernate 쿼리문처럼 특정 필드의 값이 XX 일 때 해당 필드를 조건에 넣어 조회되지않게 하는 용도로 쓴다

논리 삭제된 필드를 이용해야 하는 일이 있는데 jpql로 작성한 쿼리는 @where 어노테이션에 영향을 받지 않는다 하여 update쿼리는 무난히 작성하여 사용하였는데 조회하는 쿼리를 jpql로 쓰니까 자꾸

@where 조건이 추가가 되어서 쿼리가 실행되었다.

전에 작성한 쿼리

@where 어노테이션이 jpql의 select에는 영향을 주는것 같았다.

다른 글에서 nativeQuery로 작성하면 영향을 안받는다는 글을 봐서 아래와 같이 작성하여 해결하였다.

profile
since 2022

0개의 댓글