메서드를 호출하는 게 가능하다. 타임리프가 지원한다. 얼마든지 Study에다가 method를 구현해서 사용할 수 있다. principal 정보는 Useraccount 이기 때문에 이 타입으로 받을 수 있다. 이 타입으로 받으면 Useraccount에는 account를 꺼낼 수 있다. account에 접근이 가능해진다.
th:utext 를 하면 html을 랜더링 해서 보여준다!
study를 조회할 때 스터디가 연결되어있는 데이터를 가져와야 한다. findByPath를 사용할 때 , 필요한 정보를 같이 조인해서 가져올 수 있다.
엔티티들은 서로 연관되어 있는 관계가 보통이며 이 관계는 그래프로 표현이 가능합니다. EntityGraph는 JPA가 어떤 엔티티를 불러올 때 이 엔티티와 관계된 엔티티를 불러올 것인지에 대한 정보를 제공한다. @EntityGraph의 type은 EntityGraph.EntityGraphType.FETCH와 EntityGraph.EntityGraphType.LOAD 2가지가 있다.
@NamedEntityGraph: @NamedEntityGraph 어노테이션은 재사용할 여러 엔티티 그룹을 정의할 때 사용한다. 이 그룹을 정의하는 목적은 Repository 인터페이스 메서드에 적용되는 @EntityGraph 어노테이션이 이 엔티티 그룹에 대한 정보를 받아와 연관 엔티티 로딩 시 어떤 정책 취할 것인가를 정할 수 있는 데에 있다.
lazy 전략일 때는 록시를 들고 온다. 즉 연결된 빈 객체를 들고 오는 것, eager 전략일 경우에는 객체를 바로 들고 온다.
약간 복잡한 쿼리를 디비에 보내더라도 쿼리 개수를 줄이는 방법을 택하겠다. -> 쿼리가 1개만 발생하게 됨!
출처 : 인프런 백기선님의 스프링과 JPA 기반 웹 애플리케이션 개발
https://engkimbs.tistory.com/835
https://blog.leocat.kr/notes/2019/05/26/spring-data-using-entitygraph-to-customize-fetch-graph