728x90
1. @Entity
@Entity가 붙은 클래스는 JPA가 관리하는 엔티티이다.
꼭 기본 생성자가 있어야한다. ( 파라미터X)
2. @Table
엔티티와 매핑할 테이블을 지정하는 어노테이션이다.
속성으로 name = "" 으로 매핑할 테이블 이름을 변경할 수 있다.
3. @Enumerated
enum을 설정하고 싶을 때 사용한다.
(EnumType.STRING)으로 설정해주어야 안전하다.
ORDINAL도 있는데 (default)이는 순서를 DB에 저장하는 것으로 안전하지않다.
예시 )
@Enumerated(EnumType.STRING)
private OrderStatus status;
4. @Id
해당 변수를 pk로 설정해준다.
5. @GeneratedValue
따로 값을 넣지 않아도 자동적으로 숫자가 하나씩 증가되도록 값이 설정된다.
<PK 자동생성>
기본키는 null이 아니여야하고 유일해야하고 변하면 안된다.
미래까지 이 조건을 만족하는 자연키는 찾기 어렵다. 그 대신 대체키를 사용하자.
권장 : Long 형 + 대체키 + 키 생성전략 사용
6. @Temporal
날짜, 시간등으로 형식을 지정할 때 사용한다.
(TemporalType.TIMESTAMP)을 주어 타입을 지정할 수 있다.
TIMESTAMP이외에도 DATE , TIME이 있다.
[ LocalDate , LocalDateTime을 사용하면 생략가능]
7. @Lob
긴 문자열 혹은 숫자를 저장할 때 사용하는 어노테이션이다.
description등 긴 설명을 적을 때 사용
반응형
'개발공부 > [Spring]김영한_ORM표준 JPA프로그래밍' 카테고리의 다른 글
[애플리케이션 개발]persistence_entityManagerFactory, 엔티티 생성 (0) | 2022.08.23 |
---|---|
[spring]JPQL이 뭔가요?(파라미터와 select) (0) | 2022.08.18 |
[spring] 양방향 연관관계&연관관계의 주인 (0) | 2022.08.18 |
[spring]단방향 연관관계 (0) | 2022.08.18 |
플러쉬(flush)란? (0) | 2022.08.18 |