Backend study/JPA (9) 썸네일형 리스트형 어노테이션 정리 1. 엔티티 매핑 관련 어노테이션@EntityJPA에서 엔티티 클래스임을 나타내는 필수 어노테이션이다.이 어노테이션이 붙은 클래스는 데이터베이스 테이블과 매핑된다.@Table엔티티가 매핑될 테이블의 이름과 속성을 설정한다.속성: name(테이블 이름), schema(스키마 이름), uniqueConstraints(유니크 제약 조건 설정) 등.@Id기본 키로 사용될 필드를 지정한다.@GeneratedValue기본 키 값을 자동으로 생성하는 전략을 정의한다.전략: GenerationType.AUTO, GenerationType.IDENTITY, GenerationType.SEQUENCE, GenerationType.TABLE.@Column엔티티의 필드를 매핑할 테이블 컬럼의 정보를 설정한다.속성: name(.. 값 타입 JPA에서 값 타입(Value Type)은 엔티티와는 달리 식별자가 없는 데이터 타입으로, 데이터의 속성 값이나 속성 집합을 표현하는 데 사용된다. 값 타입은 엔티티의 속성을 구성하거나 다른 엔티티와 관계 없는 데이터를 표현할 때 주로 사용된다.JPA에서 값 타입은 크게 다음 네 가지로 분류된다:기본 값 타입임베디드 타입(복합 값 타입)값 타입과 불변 객체값 타입 컬렉션 1. 기본 값 타입 (Basic Value Type)기본 값 타입은 자바에서 기본적으로 제공하는 기본 데이터 타입과 래퍼 클래스, 그리고 String, BigDecimal, BigInteger 같은 타입들을 의미한다. 기본 값 타입은 자체적으로 값이 변경되거나 분리될 수 없는 타입이다.기본 값 타입의 특징식별자가 없음: 기본 값 타입은 .. 프록시와 연관관계 관리 JPA에서 프록시와 연관관계 관리는 엔티티와 데이터베이스 간의 관계를 효율적으로 처리하기 위해 중요한 역할을 한다. 특히, 프록시 객체를 통해 엔티티를 필요할 때만 로딩하고, 즉시 로딩과 지연 로딩을 활용하여 성능을 최적화할 수 있다. 또한, 영속성 전이(cascade)와 고아 객체 관리는 엔티티의 생명 주기를 관리하는 데 중요한 개념이다. 1. 프록시프록시(Proxy)는 실제 엔티티 객체를 대신해 간접적으로 객체를 참조하는 객체이다. JPA는 데이터베이스의 데이터를 완전히 로딩하지 않고도 프록시 객체를 통해 지연 로딩을 사용할 수 있도록 지원한다. 프록시 객체는 실제 데이터가 필요한 시점에 데이터베이스에서 조회를 수행하여 데이터를 가져온다.프록시 사용 예시Member member = em.getRefe.. 고급 매핑 JPA는 기본적인 엔티티 매핑 외에도 다양한 고급 매핑 기능을 지원하여 복잡한 객체-관계 매핑을 처리할 수 있도록 돕는다. 이 고급 매핑 기능을 통해 상속 관계, 복합 키, 식별 관계, 조인 테이블, 그리고 여러 테이블과의 매핑을 유연하게 설정할 수 있다. 1. 상속 관계 매핑JPA는 객체 지향 언어의 상속을 관계형 데이터베이스와 매핑할 수 있는 기능을 제공한다. JPA에서는 상속 구조를 여러 가지 전략으로 데이터베이스에 매핑할 수 있다.상속 매핑 전략단일 테이블 전략(Single Table): 상위 클래스와 하위 클래스가 하나의 테이블에 모두 저장되는 방식이다.조인 전략(Joined Table): 상위 클래스는 상위 클래스 테이블에, 하위 클래스는 하위 클래스 테이블에 저장하는 방식이다. 두 테이블은 .. 다양한 연관관계 매핑 JPA에서 다양한 연관관계 매핑은 객체 모델에서의 관계와 데이터베이스의 테이블 간 관계를 정의하고 관리하는 중요한 부분이다. 객체 지향 세계에서 엔티티는 다양한 방식으로 서로 연관될 수 있다. JPA는 이러한 연관관계를 다양한 매핑 방식으로 처리하며, 이를 통해 관계형 데이터베이스의 외래 키와 객체 참조 간의 불일치를 해결한다.연관관계는 크게 네 가지로 분류할 수 있다:다대일(Many-to-One)일대다(One-to-Many)일대일(One-to-One)다대다(Many-to-Many) 1. 다대일(Many-to-One) 관계다대일 관계는 가장 일반적으로 사용되는 관계로, 여러 엔티티가 하나의 엔티티와 연결되는 관계이다. 예를 들어, 여러 명의 회원이 하나의 팀에 속하는 경우를 다대일 관계라고 한다.예시: .. 연관관계 매핑 기초 JPA에서 엔티티 간의 관계를 매핑할 때 연관관계를 정의하는 것이 매우 중요하다. 객체 지향 설계에서는 클래스가 서로 연관될 수 있으며, 데이터베이스에서는 테이블 간에 외래 키를 통해 관계를 맺는다. JPA는 이러한 객체와 테이블 간의 관계를 매핑하는 기능을 제공한다.연관관계는 크게 단방향과 양방향으로 나뉘며, 연관관계를 설정할 때는 특히 연관관계의 주인을 이해하는 것이 중요하다. 1. 단방향 연관관계단방향 연관관계는 한쪽 엔티티에서 다른 쪽 엔티티로만 참조하는 관계이다. 예를 들어, 회원(Member) 엔티티에서 팀(Team) 엔티티로만 참조하는 관계를 단방향 연관관계라고 한다. 반대 방향으로는 참조가 불가능하다.예시: Member -> Team (단방향 연관관계)@Entitypublic class M.. 엔티티 매핑(Entity Mapping) JPA에서 엔티티 매핑은 객체 지향적으로 설계된 엔티티 클래스를 데이터베이스 테이블에 매핑하는 과정이다. JPA는 객체와 관계형 데이터베이스의 패러다임 불일치를 해결하기 위해 다양한 매핑 방식을 제공한다. 엔티티 클래스는 주로 테이블, 필드, 컬럼, 기본 키 등의 정보와 매핑되며, 이를 통해 JPA는 SQL을 자동으로 생성하고 데이터베이스와 상호작용한다. 1. @Entity@Entity는 JPA에서 필수적인 어노테이션으로, 해당 클래스가 JPA 엔티티임을 명시한다. JPA는 이 어노테이션이 선언된 클래스를 기준으로 매핑 정보를 설정하고 관리한다.특징@Entity가 선언된 클래스는 반드시 기본 생성자가 있어야 한다.(파라미터 없는 public/protected 생성자)클래스에 final, abstract,.. 영속성 관리 JPA에서 영속성 관리는 애플리케이션이 데이터베이스와 상호작용하는 객체(엔티티)를 어떻게 관리하고, 해당 데이터를 어떻게 데이터베이스에 반영할지 결정하는 중요한 개념이다. JPA의 영속성 관리는 데이터베이스와 메모리 사이에서 엔티티 객체를 효율적으로 관리하여 성능을 최적화하고 데이터 일관성을 유지하는 역할을 한다. 1. 엔티티 매니저 팩토리(EntityManagerFactory)와 엔티티 매니저(EntityManager)JPA에서 영속성 관리는 주로 EntityManager와 EntityManagerFactory를 통해 이루어진다. 이 두 가지는 JPA에서 핵심적인 역할을 하는 컴포넌트로, 각각의 역할과 기능을 이해하는 것이 중요하다. 엔티티 매니저 팩토리(EntityManagerFactory)Entit.. 이전 1 2 다음