@Entity
엔티티 클래스 애노테이션
데이터베이스에 저장(persist)할 자바 객체를 정의
- 다양한 애노테이션을 이용해 보다 자세한 테이블 스키마 정보를 표현
- 애노테이션으로 표현한 스키마 정보와 실제 테이블 스키마가 완벽히 일치해야 할 필요는 없음
- 하나의 도메인(domain)으로 간주
@Entity 클래스 안에서 사용되는 주요 JPA 애노테이션
- @Table, @Index, @UniqueConstraint: 테이블 기본 정보와 인덱스, unique 키를 설정
- @Id, @GeneratedValue: primary key 설정
- @Column: 각 컬럼 설정
- @Enumerated: enum 을 처리하는 방법을 설정
- @Transient: 특정 필드를 DB 영속 대상에서 제외
- @OneToOne, @OneToMany, @ManyToOne, @ManyToMany: 연관 관계 설정
- @MappedSuperClass: 상속을 이용한 공통 필드 정의
- @Embedded, @Embeddable: 클래스 멤버를 이용한 공통 필드 정의
- @DataTimeFormat: 스프링에서 제공하는 애노테이션, 날짜 입력의 포맷을 지정
@Entity: JPA엔티티의 lifecycle event를 활용한 Auditing(생성자, 생성일자, 수정자, 수정일자) 테크닉
JPA엔티티에 생성일시, 수정일시 같이 일정하게 작성하는 메타데이터를 처리 가능
- @PrePersist
- @PostPersist
- @PreRemove
- @PostRemove
- @PreUpdate
- @PostUpdate
- @PostLoad
@Entity: Spring JPA Auditing 애노테이션
엔티티의 생성일시, 수정일시, 생성자, 수정자를 자동으로 관리해주는 애노테이션
설정
- @EnableJpaAuditing
- @EntityListeners(AuditingEntityListener.class)
활용
- @CreatedBy
- @CreatedDate
- @LastModifiedBy
- @LastModifiedDate
'스프링' 카테고리의 다른 글
AWS S3를 활용한 프로필 사진 업로드 기능 개발 회고 (3) | 2024.09.29 |
---|---|
spring boot 에서 google login을 사용해보았다. (0) | 2021.12.18 |
Spring 웹 계층 (0) | 2021.12.14 |
스프링 서버 단에서 데이터 처리하는 방식 (0) | 2021.11.27 |
Auditing @CreatedDate @LastModifiedDate (0) | 2021.11.27 |