본문 바로가기

Spring/jpa

[spring data jpa] jpa query

Fetch

연관 관계의 정보를 지금 가져올 것인지 나중에 가져올것인지

 

OneToMany 일때는 미리 가져오지 않는다

얼마나 많은 데이터가 있을지도 모르고

Post  정보를 얻기 위해 그 많은걸 다 가져오면 불필요할 수 있으니

기본값이 Lazy 로 가져온다.

 

ManyToOne 에서는 같이 가져온다

 

 

 

쿼리

JPQL

 

sql과 차이점은 - db 테이블 기준이 아니라 entity 기준으로 데이터를 가져온다.

각 db에 독립적이다.

db 벤더에 맞는 sql 로 변환 해서 실행이 된다.

 

JPA2.0 이상 부터는 저렇게 TypedQuery 를 만들 수 있다.

 

근데 위와 같이 sql을 쓰면 타입세이프 하지 않을 수 있다.

위처럼 CriteriaBuilder 를 이용해서 타입 세이프한 쿼리를 만들 수 있다.