다양한 연관관계 처리
* 일 대다, 다 대다, 단방향, 양방향
연관관계의 설정과 단방향/양방향
* 단방향'이란, 간단히 말해서 '일방 통행'의 참조라고 생각. 예를 들어, 회원 정보를 통해서만 프로필 정보를 볼 수 있는 구조
JPA 에서의 연관관계
* @OneToOne, @OneToMany, @ManyToOne, @ManyToMany
@Log
* Lombok의 로그를 사용할 때 이용
@Commit
* 테스트 결과를 테이터베이스에 commit하는 용도
단방향의 문제와 Fetch Join
ex) '회원 정보를 조회하면서 회원의 현재 프로필 사진도 같이 보여주어야 한다.'
ex) "uid가 'user1'인 회원의 정보와 더불어 회원의 프로필 사진 숫자를 알고 싶다"
* test ex)
```java
@Query("SELECT m.uid, count(p) FROM Member m LEFT OUTER JOIN Profile p ON m.uid = p.member WHERE m.uid = ?1 GROUP BY m")
public List<Object[]> getMemberWithProfileCount(String uid);
```
```java
@Test
public void testFetchJoin1(){
List<Object[]> result = memberRepo.getMemberWithProfileCount("user1");
result.forEach(arr -> System.out.println(Arrays.toString(arr));
}
```