@Entity
public class Member {
@Id @GeneratedValue
@Column(name = "member_id")
private Long id;
@Column
private String email;
@OneToMany(mappedBy = "member")
private List<Post> posts = new ArrayList<>();
}
@Entity
public class Post {
@Id @GeneratedValue
@Column(name = "post_id")
private Long id;
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "member_id")
private Member member;
@Column
private String content;
}
다음과 같은 엔티티가 있을때 Member와 Post는 1:N 관계 입니다.
이때 Post 테이블에서 post.member_id 를 기준으로 일치하는 데이터들을 가져오는 메서드를 작성합니다.
가능한 메서드는 두 종류가 있습니다.
Member 라는 엔티티를 조건으로 검색하는 findAllByMember
memberId 라는 필드값을 조건으로 검색하는 findAllByMemberId
결론부터 말하자면 1 번 메서드를 사용해야 합니다.
이유는 필드값을 조건으로 검색할 때는 조인 쿼리가 추가적으로 날라가게 되고, 엔티티를 조건을 검색할 때는 조인 쿼리가 날라가지 않기 때문에 성능상 유리하게 됩니다.