-
[JPA] jakarta.persistence @Annotation 정리자바/JPA 2024. 1. 18. 15:29
JPA의 영속성 관련해 자주 사용하는 @Annotaion을 한 자리에 정리해 보았습니다.
@Entity: 해당 객체를 JPA에서 엔티티로 인식 할 수 있도록 해주는 Annotaion
@Id: 엔티티의 PK 임을 나타내며 Id로 설정된 객체 이름을 snake_case로 변환해 DB의 테이블과 맵핑해줍니다.
@GeneratedValue: Id로 설정된 식별자 값을 자동으로 증가시켜 주며, 아래와 같은 네 가지 타입이 존재합니다.
- GeneratedValue(strategy = GenerationType.IDENTITY)
PK 값 생성을 DB에 맡깁니다. MySQL, MSSQL 등에 주로 사용됩니다. - GeneratedValue(strategy = GenerationType.SEQUENCE)
DB에서 테이블의 행 별로 별도의 Sequence를 관리하는 경우 해당 Sequence를 조회해 PK값을 생성합니다.
Oracle 등에 주로 사용됩니다. - GeneratedValue(strategy = GenerationType.TABLE)
2번의 Sequence의 기능을 가진 별도의 테이블을 만들어 Key값을 관리합니다. 효율이 떨어져 권하지 않습니다. - GeneratedValue(strategy = GenerationType.AUTO)
사용하는 DB에 따라 1, 2, 3번 중 하나를 자동으로 설정하도록 설정합니다. 버전 별로 동작이 다를 수 있어 권하지 않습니다.
'자바 > JPA' 카테고리의 다른 글
[JPA] test 시 @RequiredArgsConstructor 사용 불가 (0) 2024.01.21 [JPA] Lombok 이란? (0) 2024.01.06 [JPA] Persistence(영속성) 정리 (0) 2024.01.02 [JPA] JPA란? (0) 2023.12.18 [JPA] console에 query parameter 값 표시 with.springboot (1) 2023.11.29 - GeneratedValue(strategy = GenerationType.IDENTITY)