1. @Entity
이 어노테이션이 붙은 클래스는 JPA에서 Entity로 선언할 수 있습니다.
2. @Table
Entity와 매핑할 Table을 지정할 수 있습니다.
* 기본적으로 클래스 이름과 동일한 이름의 테이블이 생성되지만 @Table의 name 속성으로 이름을 바꿀 수 있습니다.
3. @Id
테이블의 값들 중 Primary Key에 사용할 속성을 지정한다.
* SQL Query로 치면 primary key이고 테이블 당 단 하나밖에 생성할 수 없습니다.
4. @GeneratedValue
위에서 말한 @Id를 생성하는 전략을 설정할 수 있습니다.
생성 전략에 대한 정보 확인하기
5. @Column
이 어노테이션이 붙은 필드는 자동으로 테이블의 Column으로 적용됩니다.
(굳이 어노테이션을 붙이지 않아도 private 필드는 자동으로 Column의 대상이 됩니다.)
* @Column의 속성들로 nullable, 글자 수, 이름 등을 제어할 수 있습니다.
속성들에 관한 정보 확인하기
6. @Lob
BLOB, CLOB 타입을 매핑합니다.
7. @CreationTimestamp
값을 INSERT할 때, 시간을 자동으로 저장합니다.
8. @Enumerated
enum 타입을 매핑합니다.
* enum -> string(value)
9. @Transiet
해당 필드를 데이터베이스에 매핑하지 않습니다.
10. @Temporal
날짜 타입을 매핑합니다.
11. @CreatedDate
Entity가 생성되어 데이터ㅣ베이스에 저장될 때의 시간을 자동으로 저장합니다.
12. @LastModifiedDate
Entity의 값이 변경될 때의 시간을 자동으로 저장합니다.