인프런 커뮤니티 질문&답변

터틀맨님의 프로필 이미지

작성한 질문수

실전! Querydsl

시작 - JPQL vs Querydsl

EntityManager 관련 질문

해결된 질문

20.10.06 19:30 작성

·

208

3

안녕하세요 강사님~ 강의 재미있게 보고있습니다.

강의 마지막쯤 스프링에서 주입해주는 엔티티매니저는 동시성문제 없이 동작한다고 설명 해주셨는데 JPAQueryFactory를 Bean으로 등록하거나 상위 클래스 생성자에서 미리 할당하고 사용해도 문제가 없는지 궁금합니다.

또 현업에서도 예제처럼 querydsl을 사용 할 때마다 JPAQueryFactory를 할당해서 사용 하시는지도 궁금합니다.

답변 1

9

김영한님의 프로필 이미지
김영한
지식공유자

2020. 10. 06. 23:27

안녕하세요. 데비님^^ 좋은 질문입니다.

강의에서 말씀드린 것 처럼 JPAQueryFactory는 하나만 생성하고 공유해도 문제가 없습니다. 따라서 스프링 빈으로 등록해서 사용해도 됩니다.

JPAQueryFactory는 스프링 빈으로 등록해서 사용할 때 도 있고, 리포지토리마다 각각 JPAQueryFactory를 멤버변수(필드)에 만들어두고 사용할 때도 있습니다^^ (현업에서는 어떤 방법으로 사용하셔도 무방합니다.)

그런데 메서드 안에서 호출할 때 마다 new JPAQueryFactory를 생성해서 호출하는 것은 비효율 적이니 권장하지 않습니다.

감사합니다.