목록JPA (2)
개발 기록지
영속성 전이란? 특정 엔티티를 영속 상태로 만들때 연관된 엔티티도 영속상태로 만들고 싶을때 영속성 전이를 사용하면 된다. JPA는 CASCADE 옵션으로 영속성 전이를 제공한다. 예를 들어보자. 게시판과 댓글이 서로 연관된 엔티티일때 게시판이 삭제되면 해당 게시판에 달린 댓글 또한 삭제되어야한다. 이 때 영속성 전이를 사용하면 게시판을 삭제할 때 해당 게시판에 댓글 또한 삭제가 된다. 아래 예시를 보면서 이해해보자 아래 코드는 간단한 Post 엔티티와 Comment 엔티티이다. 위의 코드는 하나의 게시판에 댓글 두 개를 등록하는 코드이다. 코드를 보면 댓글과 게시판에 서로 연관관계를 설정해 주었다. 그렇다면 위 코드를 보고 어떻게 쿼리가 날아갈지 예상해보자. 당연히 INSERT문은 한번밖에 날아가지 않을..
즉시로딩이란? 엔티티를 조회할 때 연관된 엔티티를 조인하여 전부 가져온다. 쿼리 한 번으로 모든 정보를 가져와 참조가 많아질수록 조인이 많아지게 되고 이로 인해 성능상 문제가 될 수 있다. 지연로딩이란? 엔티티를 조회할 때 연관된 엔티티를 항상 사용하는 것은 아니다. 예를 들어 Member엔티티를 조회할 때 연관된 Team엔티티까지 모두 조회가 된다면 성능상 문제가 발생할 것이다. 지연로딩은 즉시로딩과 달리 연관된 엔티티가 실제로 사용될 때 쿼리가 날아간다. 따라서 상황에 따라 쿼리가 여러 번 날아간다. 지연로딩(LAZY): 연관된 엔티티를 실제 사용할 때 조회한다. 즉시로딩(EAGER): 엔티티를 조회할 때 쿼리 한 번으로 연관된 엔티티를 전부 조인을 통해 조회한다. 지연로딩의 이해와 프록시 객체 지연..