JVM/JPA 47

@Temporal

java.util.Date, java.util.Calendar 을 매핑할 때 사용한다. 생략하면 자바의 Date와 가장 유사한 timestamp(MySQL) 혹은 datetime(H2, 오라클, PostgreSQL) 로 정의된다. 속성 기능 기본값 value TemporalType.DATE 데이터베이스 date 타입과 매핑 (2013 - 10 11) TemporalType.TIME 데이터베이스 time 타입과 매핑 (11:11:11) TemporalType.TIMESTAMP 데이터베이스 timestamp 타입과 매핑 (2013-10-11 11:11:11) LocalDate, LocalTime, LocalDatetime JPA 2.2 부터 알아서 매핑해준다. 데이터베이스에는 HH:mm:ss 형태로 저장된다.

JVM/JPA 2023.06.11

@Enumerated

자바의 enum 타입을 매핑할 때 사용한다. 속성 기능 기본값 value EnumType.ORDINAL: enum 순서를 데이터 베이스에 저장 EnumType.STRING: enum 이름을 데이터베이스에 저장 EnumType.ORDINAL EnumType.ORDINAL 데이터베이스에 저장되는 데이터 크기가 작다. 이미 저장된 enum의 순서를 변경할 수 없다. EnumType.STRING (권장) 저장된 enum의 순서가 바뀌거나 enum이 추가되어도 안전하다. 데이터베이스에 저장되는 데이터 크기가 ORDINAL에 비해서 크다.

JVM/JPA 2023.06.11

@Column

객체 필드를 테이블 컬럼에 매핑하는데 사용되는 애노테이션이다. @Column을 생략하게 되면 기본값이 적용되는데, 자바 기본 타입일 때는 nullable 이 false가 된다. 속성 기능 기본값 name 필드와 매핑할 테이블의 컬럼이름 필드 이름 insertable 엔티티 저장 시 이 필드도 같이 저장한다. false옵션은 읽기 전용일 때 사용한다. true updatable 엔티티 수정 시 이 필드도 같이 저장한다. false옵션은 읽기 전용일 때 사용한다. true table 하나의 엔티티를 두 개 이상의 테이블에 매핑할 때 사용. 지정한 필드는 다른 테이블에 매핑할 수 있다. 현재 클래스가 매핑된 테이블 nullable null 값의 허용 여부를 설정한다. true unique 한 컬럼에 유니크 제..

JVM/JPA 2023.06.11

JPA 키 생성 전략

직접 할당 전략 기본 키를 직접 할당하려면 @Id만 매핑하면 된다 @Id private Long id; 적용 가능 자바 타입 자바 기본형 자바 래퍼형 String java.util.Date java.sql.Date java.math.BigDecimal java.math.BigInteger IDENTITY 전략 기본 키 생성을 데이터베이스에 위임하는 전략이다. @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; 엔티티를 데이터베이스에 저장한 후에 식별자를 조회해서 엔티티의 식별자를 할당한다. 때문에 이 전략은 persist 메소드 호출 시 즉시 INSERT SQL이 데이터베이스에 전달되어 트랜잭션을 지원하는 쓰기 지연이 동작하지..

JVM/JPA 2023.06.10

@Entity

JPA를 사용해서 테이블과 매핑할 클래스에 필수로 붙여야한다. 주의 사항 기본 생성자는 필수다. final 클래스, enum, interface, inner 클래스에는 사용할 수 없다. 저장할 필드에 final을 사용할 수 없다. 속성 정리 속성 기능 name JPA에서 사용할 엔티티 이름을 지정한다. 생략시 클래스 이름을 사용한다. 다른 패키지에 이름이 같은 엔티티 클래스가 있다면 이름을 지정해서 충돌하지 않도록 해야 한다.

JVM/JPA 2023.06.10

@Table

@Table 애노테이션은 엔티티와 매핑할 테이블을 지정한다. 속성 정리 속성 기능 name 매핑할 테이블 이름, 생략시 엔티티 이름 사용 catalog catalog 기능이 있는 DB에서 catalog를 매핑 schema schema 기능이 있는 DB 에서 schema를 매핑 uniqueConstraints(DDL) DDL 생성 시에 유니트 제약조건을 만든다. 2개 이상의 복합 유니크 제약조건도 만들 수 있다. 실행 로직에는 영향을 주지 않으며 DDL을 만들 때만 사용된다.

JVM/JPA 2023.06.10