프레임워크/JPA (Java Persistence API)

    @Embedded 와 @Embeddable 과 @AttributeOverrides 란?

    @Embeddable 애노테이션이란? 필드 혹은 속성을 임베드 가능한 클래스로 지정하는데 사용한다. 임베드 가능한 클래스란, 고유한 기본 키가 없는 관련 필드 그룹을 나타내는데 사용된다. 일반적으로 엔티티 내에서 관련 열을 함께 그룹화하는데 사용된다. 몇몇 필드를 분리된 클래스로 캡슐화하는데 이용된다. 엔티티와 함께 컬럼으로 직접 매핑된다. 아래는 주소 정보를 임베드 가능한 클래스로 구성한 예이다. @Embeddable public class Address { private String street; private String city; private String state; private String zipCode; // getters, setters, etc. } @Embeddable 애노테이션 클래..

    JPA 에서 LocalDateTime 사용하기

    JPA 에서 LocalDateTime 사용 JPA 2.2 버전부터 공식지원 그 이전 버전은 추가적인 애노테이션이나 컨버터를 만들어야 함 컨버터 구현 import java.time.LocalDateTime; import java.sql.Timestamp; import javax.persistence.AttributeConverter; import javax.persistence.Converter; @Converter(autoApply = true) // If autoApply is set to true, the converter will be applied to all mapped attributes of the type and all parameters and results of queries that ..

    왜 @Entity 는 인수가 없는 생성자가 필요하고 final 이면 안되는가?

    @Entity 애노테이션이란? 클래스를 엔티티로 표시하는 데 사용되는 JPA 의 핵심 측면(aspect)이다. 클래스 하나는 관계형 데이터베이스의 테이블 하나를 나타내며 엔티티의 각 인스턴스는 테이블의 행에 해당한다. 문법 @Entity public class MyEntity { // Fields, constructors, getters, and setters } 용도 @Entity 라는 애노테이션을 붙이는 것은 해당 클래스가 영속성 컨텍스트에 의해 관리되어야 한다는 것을 말한다. 해당 클래스가 데이터베이스 테이블에 매핑될 것임을 JPA 에 알리는 것을 말한다. 요구사항 클래스가 엔티티가 되려면 몇가지 요구사항을 충족해야 한다. public 혹은 protected 접근자의 no-argument 생성자가 ..

    @Entity 애노테이션이란?

    @Entity 애노테이션이란? 클래스를 엔티티로 표시하는 데 사용되는 JPA 의 핵심 측면(aspect)이다. 클래스 하나는 관계형 데이터베이스의 테이블 하나를 나타내며 엔티티의 각 인스턴스는 테이블의 행에 해당한다. 문법 @Entity public class MyEntity { // Fields, constructors, getters, and setters } 용도 @Entity 라는 애노테이션을 붙이는 것은 해당 클래스가 영속성 컨텍스트에 의해 관리되어야 한다는 것을 말한다. 해당 클래스가 데이터베이스 테이블에 매핑될 것임을 JPA 에 알리는 것을 말한다. 요구사항 클래스가 엔티티가 되려면 몇가지 요구사항을 충족해야 한다. public 혹은 protected 접근자의 no-argument 생성자가 ..

    @SecondaryTables 애노테이션이란?

    @SecondaryTables 애노테이션이란? 한글로 번역하면 보조 테이블들 이라는 의미이다. 특정한 엔티티에 관련된 추가적인 테이블을 명시하는데 사용되는 JPA 애노테이션이다. 엔티티의 데이터가 2개 이상의 테이블에 분산되고 해당 엔티티를 모든 테이블에 매핑하려는 경우에 사용된다. 간단 사용법 @SecondaryTables({ @SecondaryTable(name="table_name", pkJoinColumns=@PrimaryKeyJoinColumn(name="column_name")), // ... other secondary tables ... }) 속성 (Attributes) name: 보조 테이블의 이름 catalog (Optional): 테이블의 카탈로그. 기본 값은 빈 문자열이다. sche..

반응형