repository.find()
메서드는 left outer join이 기본
- info(주문기본)와 line(주문상세)을 join해야하는데,
info쪽은 있으나 line은 없을 데이터가 없음. ➡︎ info가 있으면 line은 무조건 있음
→ 이를 설정하지 않겠다는 표시로 참조하는 쪽에서(@ManyToOne) nullable=false로 설정
→ leftouter join으로 하면 퍼포먼스 떨어지니까 line쪽에 nullable=false을 해주는 것임
→ JoinColumn은 fk를 지정하기 위해서 넣는 것이고, 이 fk로 쓰일 line쪽이 굳이 left outer join을 하지 않아도 되면 nullable=false
→ inner join
을 함
- p를 삭제하려고 할 때 line을 먼저 삭제하는데 info도 삭제되면 안되니까 영속성 전이를 설정해줘야 한다.
- cascade 영속성전이를 하지 않을거면
mappedBy
를 할 필요가 없고 @JoinColumn
을 쓰면 됨