jpa(spring data jpa)를 이용해 프로젝트를 구현중입니다.
테이블 연관관계 때문에 다수의 테이블에 join을 해야하는데, n+1문제가 있고 성능상 jpaRepository를 상속받은 순수 jpa를 이용하기 어렵다고 판단되어 거의 대부분을 jpql을 사용해 구현하고 있습니다.
실제 실무에서도 jpa를 사용하는 프로젝트는 거의 대부분을 jpql을 사용하는지,
만일 아니라면 어떤식으로 해결하는지 궁금해서 문의드립니다!
jpa(spring data jpa)를 이용해 프로젝트를 구현중입니다.
테이블 연관관계 때문에 다수의 테이블에 join을 해야하는데, n+1문제가 있고 성능상 jpaRepository를 상속받은 순수 jpa를 이용하기 어렵다고 판단되어 거의 대부분을 jpql을 사용해 구현하고 있습니다.
실제 실무에서도 jpa를 사용하는 프로젝트는 거의 대부분을 jpql을 사용하는지,
만일 아니라면 어떤식으로 해결하는지 궁금해서 문의드립니다!
안녕하세요. 민규님, 공식 서포터즈 y2gcoder입니다.
간단한 CRUD는 주로 spring data jpa의 쿼리메서드를 이용하고, 조금 더 복잡해지면 @Query 를 이용한 JPQL을 사용하고 있습니다 🙂
동적 쿼리가 많아지면 QueryDSL을 도입하는 것을 고민해보는 것 같고, 정말 JPQL로 해결하기 어려운 문제라면 JdbcTemplate 등을 사용한 네이티브 쿼리를 고민해보는 것 같습니다.
상황에 따라서는 조인으로 한방 쿼리를 작성하지 않고 나누어 호출하는게 성능상 나을 때도 있었습니다!(이건 상황마다 달라서 직접 테스트를 해보는게 맞았습니다)
감사합니다.
답글