지연로딩 간단 이론, 동일/동등성

김성인·2023년 9월 26일
0

🧷SpringBoot JPA

목록 보기
4/10

지연로딩

  • 실제 객체를 사용하는 시점까지 데이터베이스 조회를 미룸.
class Member{
  private Order order;
  public Order getOrder{
    return order;
  }
  • 지연 로딩 사용
// 처음 조회 시점에 SELECT MEMBER SQL
Member member = jpa.find(Member.class, memberId);

Order order = member.getOrder();
order.getOrderDate(); // Order를 사용하는 시접에 SELECT ORDER SQL 

비교

  • DB에서는 기본키의 값으로 각 row(행)을 구분함.
  • 자바에서는 Identity(동일성), Equality(동등성)을 비교한다.
  • 동일성 == : 객체 인스턴스의 주소 값을 비교
  • 동등성 equals() : 객체 내부의 값을 비교
  • jdbc 사용:
    데이터 베이스에서 같은 행을 조회하였지만 객체의 동일성 비교에는 실패하엿다. 객체 측면에서는 서로 다른 인스턴스 이기 때문
class MemberDAO{
  public Member getMember(String memberId){...}; // 일반 JDBC API 
}

String memberId = "100";
Member member1 = memberDAO.getMember(memberId);
Member member2 = memberDAO.getMember(memberId);

member1 == member2; // False
  • JPA 사용:
    같은 인스턴스로 인식
  String memberId = "100";
  Member member1 = jpa.getMember(memberId);
  Member member2 = jpa.getMember(memberId);

  member1 == member2; // True

0개의 댓글