묻고 답해요
141만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결실전! Querydsl
EntityManagerFactory를 활용한 페치조인 예제 에러(해결법있음 - 이유모름)
환경 조인 - 페치 조인 강의를 듣던 중이 부분 예제를 따라 하다가 보니java.lang.illegalstateexception: specified field type [interface jakarta.persistence.entitymanagerfactory] is incompatible with resource type [jakarta.persistence.entitymanager]이라는 exception이 발생했습니다.강의에서 새로운 프로젝트를 생성하거나 파일을 생성하지 않았으므로 상단에@PersistenceContext EntityManager em; 가 있고 추가적으로@PersistenceContext EntityManagerFactory emf;를 넣어주고 테스트 코드에서emf.getPersistenceUnitUtil().isLoaded(findMember.getTeam());를 실행하였습니다. 일단 entitymanagerfactory는 yml에 있는 설정을 바탕으로 1개가 생성되고 해당 factory에서 요청에 의해 entitymanager를 생성해서 제공하는 형태라는 글을 발견하여 추가적인 의존성 주입에서 2개의 factory 생성되는 이슈가 발생해서가 아닌가 추측을 하고 우선적으로는 사용중인 em에서 factory를 가져올 수 있길래 이렇게 접근했는데em.getEntityManagerFactory().getPersistenceUnitUtil().isLoaded(findMember.getTeam());정상작동은 하긴 하지만 강사님의 경우 추가적인 entitymanagerfactory 주입에도 테스트코드가 돌아갔으므로 정확한 동작 이유를 잘 모르겠어서 혹시 확실한 이유를 알 수 있을까 하여 문의합니다.바탕
-
미해결실전! Querydsl
EntityManager thread-safe 문제
안녕하세요 영한님 !! EntityManager 생성시에, final로 주입받으시거나 @PersistenceContext를 사용해서 주입받으시거나 둘 중에 하나로 코드를 작성하시는 것을 보았는데요!! 제가 알기로는 Entitymanager의 thread-safe하지 않은 문제를 해결하기위해서 @PersistenceContext를 사용하여 프록시 객체로 감싸서 생성함으로써 thread-safe하지 않은 문제를 해결해준다고 알고있었는데요, 그렇다면 final로 주입시에는 프록시 객체로 감싸서 주입받는게 아닌, 진짜 bean을 주입 받기 때문에 thread-safe하지 않다고 봐야할까요?? 감사합니다!! :)