본문 바로가기

Spring6

JPA의 정적쿼리와 동적쿼리의 차이점 JPA를 쓰면서 개발을 할때마다 언제 정적쿼리로 작성해야할지, 동적쿼리로 작성을 해서 문제를 해결해야할지 고민되는 상황이 많습니다. 저도 매번 성능상 어느편이 좋은지 고민을 많이 하는데요. 사실 정적쿼리와 동적쿼리의 차이점을 제대로 알고있지 않은 부분도 있어서 쉽게 해결책을 찾지 못했던 것 같습니다. 따라서 이번 게시물에서는 정적쿼리와 동적쿼리의 차이점을 알아보고, 상황에 따른 쿼리 사용법을 확인해보겠습니다. 정적쿼리 정적쿼리란 애플리케이션 로딩 시점에서 JPQL로 작성된 쿼리를 사용합니다. 이쿼리가 의미하는 것은 애플리케이션이 실행되기 전에 이미 결과가 결정되어 변경되지 않는 쿼리를 말합니다. 예시를 보며 확인해보겠습니다. @Entity public class User { @Id private Long.. 2023. 6. 6.
@Validated, @Valid와 @Column으로 나뉘는 유효성 검증 계기 엔티티의 검증은 하지않으면 잘못된 데이터를 받을 수 있기 때문에 필수적이라고 생각합니다. 따라서 여러가지 레포지토리를 보고 엔티티의 필드 검증을 하는 방법을 공부하고 탐색해 보았는데요. 모든 레포지토리가 그러한 것은 아니지만 일반적으로 entitiy클래스에서는 @Column 검증을, dto 클래스에서 @Validated, @Valid같은 어노테이션을 사용해서 작성하는 것 같았습니다. 여기에서 제가 알 수 있던 것은.. "entity의 필드 검증을 직접하지 않아도 된다." 입니다. 어짜피 모든 엔티티에는 검증과정이 들어가고 그때마다 테스트 로직을 동작한다면 정상 작동한다고 가정했을 때, 불필요한 테스트 과정이 추가될 뿐입니다. 물론 테스트는 꼼꼼해야하지만 테스트과정을 동반하지 않아도 오류가 발생하지 .. 2023. 3. 22.
반응형