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

hjemsti님의 프로필 이미지

작성한 질문수

실전! 스프링 데이터 JPA

순수 JPA 기반 리포지토리 만들기

뭘 사용할지 선택에 있어서 질문입니다.

23.04.28 21:43 작성

·

353

0

EntityManger를 주입받는 방법으로

private final EntityManager em;

이렇게 선언하고 @RequiredArgsConstructor로 받을 수도 있고,

이번 강의에서처럼 @PersistenceContext로 받을 수도 있는데 각각의 차이점이 무엇인가요 ?

 

public long count() {
    return em.createQuery("select count(m) from Member m", Long.class)
            .getSingleResult();
}

또 여기서 메소드 선언문에는 long 타입을 반환타입으로 설정했는데 createQuery의 2번째 파라미터로는 Long값을 주는데 어떤 이유인지 궁금합니다.

답변 1

1

David님의 프로필 이미지

2023. 04. 29. 16:10

안녕하세요. hjemsti님, 공식 서포터즈 David입니다.

  1. @RequiredArgsConstructor는 private final 로 선언된 변수를 주입받는 생성자를 만듭니다. 또한 스프링부트는 1개의 생성자일 때 생성자에 @Autowired를 붙여주지 않아도 @Autowired가 붙여진 것과 동일하게 동작합니다. 즉, 지금 물으시는 질문은 @Autowired와 @PersistenceContext의 차이를 묻고 계신걸로 이해했습니다. 다음 글 답변을 참고해 주세요:) https://www.inflearn.com/questions/152202

  2. 다음 글 답변을 참고해 주세요. https://www.inflearn.com/questions/856916

감사합니다.

hjemsti님의 프로필 이미지

작성한 질문수

질문하기