Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- EnableAutoConfiguration
- webjar
- WebApplication Type
- Spring Security
- HttpMessageConverters
- 정적 리소스
- Application Runner
- 다익스트라
- Application Event
- 스프링부트
- AuthenticationPrincipal
- JPA
- @Profile
- @ConfigurationProperties
- 백기선
- 백준
- 스프링 부트
- OAuth2
- 브루트포스
- Application Argument
- JsonSerializer
- cors
- 외부설정
- application.properties
- HATEOAS
- 알고리즘
- 리소스핸들러
- 백트래킹
- rest api
- 리소스 서버
Archives
- Today
- Total
아카이브
[스프링 데이터 JPA] 스프링 데이터 JPA 7. EntityGraph 본문
쿼리 메서드마다 연관 관계의 Fetch 모드를 설정할 수 있습니다.
경우에 따라 다른 Fetch 모드가 필요할때 사용한다.
@NamedEntityGraph
- @Entity에서 재사용할 여러 엔티티 그룹을 정의할 때 사용
- @NamedEntityGraph를 여러개 정의할 수도 있음
Comment Entity 클래스
@NamedEntityGraph(name = "Comment.post", attributeNodes = @NamedAttributeNode("post"))
@Entity
@Getter
@Setter
public class Comment {
@Id
@GeneratedValue
private Long id;
private String comment;
/*
* ManyToOne에서 fetch default = EAGER
* */
@ManyToOne(fetch = FetchType.LAZY)
private Post post;
private Date created;
private Integer likeCount = 0;
}
@EntityGraph
- @NamedEntityGraph에 정의되어 있는 엔티티 그룹을 사용해서 실제로 동작하는 로직을 구현
- 각각의 메서드마다 다른 Fetching 전략으로 데이터를 읽어올 수 있도록 여러 가지 메서드를 만들 수 있음
// @EntityGraph(value = "Comment.post") // Entity 이름을 바로 지정해서 사용할 수도 있다
@EntityGraph(attributePaths = {"post"})
Optional<Comment> getById(Long id);
'Spring > 스프링 데이터 JPA' 카테고리의 다른 글
[스프링 데이터 JPA] 스프링 데이터 JPA 9. Specifications (0) | 2021.01.17 |
---|---|
[스프링 데이터 JPA] 스프링 데이터 JPA 8. Projection (0) | 2021.01.17 |
[스프링 데이터 JPA] 스프링 데이터 JPA 6. Update 쿼리 (0) | 2021.01.16 |
[스프링 데이터 JPA] 스프링 데이터 JPA 5. 쿼리 메서드 Named Parameter과 SpEL (0) | 2021.01.16 |
[스프링 데이터 JPA] 스프링 데이터 JPA 3. 쿼리 메서드 (0) | 2021.01.16 |