본문 바로가기
728x90
반응형

전체 글140

[Spring Boot] JPA 영속성 전이, 고아 객체 영속성 전이(Cascade)란?영속성 전이는 특정 엔티티의 상태가 변경될 때, 그와 연관된 다른 엔티티도 자동으로 동일한 상태 변화를 적용받도록 하는 것입니다. 이를 통해 코드의 간결성을 유지하고, 엔티티 간의 관계를 쉽게 관리할 수 있습니다. 말 그대로 종속, 파도처럼 같이 작용하는 것이라고 이해하면 편할 것 같습니다. Cascade 유형JPA에서 지원하는 CascadeType의 유형은 다음과 같습니다:CascadeType.PERSIST부모 엔티티가 저장(Persist)될 때, 연관된 자식 엔티티도 함께 저장됩니다.예를 들어, 부모 엔티티를 persist() 하면, CascadeType.PERSIST가 적용된 자식 엔티티도 자동으로 persist() 됩니다.CascadeType.MERGE부모 엔티티가 .. 2024. 9. 1.
[Spring Boot] JPA 프록시 프록시란? 프록시 : 실제 엔티티 객체 대신 생성되는 객체로, 엔티티의 데이터에 접근할 때까지 데이터 로딩을 지연시킵니다. 프록시 객체는 실제 엔티티 객체와 동일한 메서드와 속성을 가지며, JPA가 자동으로 생성하고 관리합니다. 좀 더 쉽게 설명하고자 하면 우리가 항상 Member을 조회할때 단순히 Member.getName만 알고싶은데 Member안에 Team까지 계속해서 로드할 필요가 없다. 이러한 불필요한 상황을 방지하고자 프록시를 사용한다.  여기서 프록시는 엔티티 클래스를 상속받아서 만들어진다. Hibernate가 내부의 프록시 라이브러리로 자동으로 상속해준다.  프록시 객체에 member.getName()을 호출해서 실제 데이터를 조회한다.프록시 객체는 실제 엔티티가 생성되어 있지 않으면 영속.. 2024. 9. 1.
[Spring Boot] JPA 고급매핑 상속관계 매핑, @MappedSuperclass 객체지향적 속성을 살릴려면 추상화, 상속, 다형성, 캡슐화 이러한 4가지를 살릴 수 있어야 한다. 여기서 상속관계를 데이터베이스로 어떻게 매핑할 수 있을까? JPA에서는 3가지 전략을 제공하는데 조인 전략 (Joined Strategy)단일 테이블 전략 (Single Table Strategy)구현 클래스마다 테이블 전략 (Table per Class Strategy)로 나누어진다. 1. 조인 전략 (Joined Strategy)조인 전략은 상속관계에 있는 각 클래스를 각각의 테이블에 매핑하고, 쿼리 시 이들 테이블을 조인하여 데이터를 조회하는 방법입니다.장점:정규화된 구조로, 데이터의 중복이 최소화됩니다.하위 클래스의 데이터를 추가하거나 변경할 때, 부모 클래스 테이블에는 영향을 주지 않습니다.단점:조.. 2024. 9. 1.
[Spring Boot] JPA 연관관계 매핑 우리가 보통 프로젝트에서 진행하는 엔티티들은 다른 엔티티와 관계가 있다. 하지만 객체는 참조를 사용하고 데이터베이스는 fk로 관계를 맺는다. 이런 다른 특징을 객체에서 매핑 시켜줄려면 단방향 관계 2개로 조인을 해주어야한다.이때 사용하는 매핑은 @JoinColomn을 사용한다. 이러한 연관관계를 매핑하기 위해선 3가지를 고려해야한다.(1) 다중성(2) 단방향, 양방향(3) 연관관계의 주인  다중성은 아래와 같은 다중성이 있다. -다대일(@ManyToOne)-일대다(@OneToMany)-일대일(@OneToOne)-다대다(@ManyToMany)여기서 거의 대부분 사용하는 것은 @ManyToOne이고 일대일과 다대다는 거의 사용하지 않는다. 사실 양방향으로 객체끼리 조회하기 위해선 @ManyToOne을 적용한.. 2024. 9. 1.
728x90
반응형