본문 바로가기
728x90
반응형

JPA6

[Spring Boot] JPA 값 타입 JPA의 데이터 타입은  엔티티 타입값 타입 으로 구분 할 있다.여기서 엔티티 타입은우리가 @Entity를 붙이는 객체를 말하는 거고 값 타입은 자바 기본 타입이나 객체를 말한다.1. 값 타입의 종류JPA에서 값 타입은 크게 세 가지로 나눌 수 있습니다.기본 값 타입(Basic Value Type)JPA에서 제공하는 기본적인 값 타입으로, Java의 기본 데이터 타입(int, long, double, boolean 등)과 래퍼 클래스(Integer, Long, Double, Boolean 등), 그리고 String, Date, BigDecimal, BigInteger 같은 타입들이 이에 해당합니다.별도의 매핑 없이 엔티티의 속성으로 사용 가능하며, 데이터베이스 테이블의 컬럼과 직접적으로 매핑됩니다.임베디.. 2024. 9. 2.
[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.
728x90
반응형