강의

멘토링

로드맵

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

wnsqud70님의 프로필 이미지
wnsqud70

작성한 질문수

자바 ORM 표준 JPA 프로그래밍 - 기본편

조인

지연로딩

작성

·

320

0

안녕하세요 강사님
 
inner join 쿼리 만드시고 run 하셨을때 처럼 저는 Team 객체가 나오지 않고..
 
지연로딩 설정한것처럼 값이나오는데(지연로딩을 설정 안했습니다)
 
혹시 제가 설정을 잘못한건가요 아니면 이 강의가 몇년전꺼다보니 지금은 디폴트가 아예 지연로딩으로 업데이트가 된건가요,.,??

퀴즈

JPQL이 데이터베이스의 SQL과 가장 근본적으로 다른 점은 무엇일까요?

질의 대상

기본 문법의 유사성

데이터베이스 독립성 제공 여부

동적 쿼리 지원 방식

답변 2

0

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

안녕하세요. wnsqud70님

@ManyToOne의 기본값은 EAGER입니다.

EAGER로 설정이 되어 있네요. 다음과 같이 수정해주세요.

public class Member {

    @ManyToOne(fetch = FetchType.LAZY)

    @JoinColumn(name = "TEAM_ID")

    private Team team;

}

감사합니다.

0

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

안녕하세요. wnsqud70님

JPA 스펙은 그동안 변한 내용이 없습니다. 따라서 강의 내용은 동일하다고 이해하시면 됩니다.

참고로

  • @ManyToOne은 기본이 EAGER입니다.
  • @OneToMany는 기본이 LAZY입니다.

 

전체 프로젝트를 압축해서 구글 드라이브로 공유해서 링크를 남겨주세요.

구글 드라이브 업로드 방법은 다음을 참고해주세요.

https://bit.ly/3fX6ygx

 

주의: 업로드시 링크에 있는 권한 문제 꼭 확인해주세요

 

추가로 다음 내용도 코멘트 부탁드립니다.

1. 실행 방법을 알려주세요.

2. 어떻게 문제를 확인할 수 있는지 자세한 설명을 남겨주세요.

감사합니다.

em.clear()를 안 해서 그런거 같은데
flush()를 해도 clear()를 안 했으니 영속성 컨테스트에 데이터가 남아있어서,
DB에 들리지 않고 영속성 컨테스트에서 가져오는건가요?
(따라서 프록시 생성도 안 되고, 로딩도 안된다?가 맞나요?)

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

yejun_1220님 여러가지를 함께 봐야할 것 같아요.

앞서 말씀드린 것 처럼 동작하는 코드를 함께 올려주시겠어요?

em.flush() 와 em.clear()를 안하고 조회 시 select 문이 안 나갔습니다.

---------------------------------------------------------------------------------------------

 

em.flush() 와 em.clear() 를 삽입 시 select문이 출력됐습니다.

 

해당 소스 입니다
https://drive.google.com/file/d/1LtVeqRfgnXxObOaNqMhn042-IKERxK1e/view?usp=sharing
JpaMain.java에서 사용됨.

wnsqud70님의 프로필 이미지
wnsqud70

작성한 질문수

질문하기