JPA76 20. 영속성 전이 : CASCADE, 고아객체 김영한님의 인프런 강의와 PDF를 바탕으로 정리하였습니다. https://www.inflearn.com/courses?s=%EA%B9%80%EC%98%81%ED%95%9C 영속성 전이 : CASCADE 영속성 전이란 특정 엔티티를 영속 상태로 만들 때 연관된 엔티티도 함께 영속 상태로 만들고 싶을 때 예: 부모 엔티티를 저장할 때 자식 엔티티도 함께 저장. 아래처럼 Parent와 Child 엔티티를 작성합니다. Parent Child 맨 위의 표와 같이 Parent : Child 는 1:N 관계입니다. 아래 코드 처럼 child를 2개 작성하고 하나의 parent의 자식으로 만든 뒤, 생성한 3개의 객체(parent, child1, child2)를 persist하기 위해서는 총 3번의 persist가 필.. 2021. 7. 16. 19. 지연로딩 김영한님의 인프런 강의와 PDF를 바탕으로 정리하였습니다. https://www.inflearn.com/courses?s=%EA%B9%80%EC%98%81%ED%95%9C 즉시로딩과 지연로딩 프록시 포스팅에서 했던 질문입니다. 단순히 member 정보만 사용하는 비즈니스 로직일때 Member를 조회할 때 Team도 함께 조회해야 할까? println(member.getName()); // 이렇게 member의 name만 필요한 경우 team까지 조회하는 것은 비효율적 프록시를 먼저 학습한 이유가 있는데, 지연로딩 LAZY를 사용해서 조회한다면 위와 같은 문제를 해결할 수 있습니다. 그런데 지연로딩에는 프록시가 적용됩니다. 지연로딩 LAZY 다음과 같이 Member엔티티의 @ManyToOne을 다음과 같이.. 2021. 7. 16. 18. 프록시 김영한님의 인프런 강의와 PDF를 바탕으로 정리하였습니다. https://www.inflearn.com/courses?s=%EA%B9%80%EC%98%81%ED%95%9C 프록시 JPA로 Member를 조회할 때 Team도 함께 조회해야 할까? 이것은 너무 비효율적이지 않을까? 라는 생각을 할 수 있습니다. Member는 Team을 참조로 가지고 있지만 DB에는 Member와 Team 테이블이 따로따로 있어서 두개의 테이블을 모두 참조해야 합니다. 하지만 Member객체를 가져온 후 Member의 name, age 등등 의 필드만 사용하고, 조회한 Member의 Team에 대한 정보는 일절 필요하지 않은데, Team에 대한 정보까지 DB에서 가져오는 것은 굉장히 비효율적으로 보입니다. Member를 조회.. 2021. 7. 15. 17. @MappedSuperclass 김영한님의 인프런 강의와 PDF를 바탕으로 정리하였습니다. https://www.inflearn.com/courses?s=%EA%B9%80%EC%98%81%ED%95%9C @MappedSuperclass는 공통 매핑 정보가 필요할 때 사용합니다. 물론 아래와 같이 DB에는 따로따로 저장됩니다. @MappedSuperclass 는 1. 상속관계, 엔티티, 테이블과 매핑되는 것이 아닙니다. 2. 부모 클래스를 상속 받는 자식 클래스에 매핑 정보만 제공 조회, 검색 불가(em.find(BaseEntity) 불가) 3. 직접 생성해서 사용할 일이 없으므로 추상 클래스 권장 코드로 살펴보겠습니다. 만약 필요에 의해 Member, Order 등 등 수많은 테이블에 업데이트한 사람의 정보, 만들어진 날짜, 수정된 날.. 2021. 7. 14. 이전 1 ··· 12 13 14 15 16 17 18 19 다음