객체와 테이블 매핑: @Entity, @Table
기본 키 매핑: @Id
필드와 컬럼 매핑: @Column
연관관계 매핑: @ManyToOne, @JoinColumn
-Entity와 매핑할 테이블을 지정한다. @Table은 생략이 가능한데 생략한다면 클래스의 이름을 테이블의 이름으로 자동 인식한다.
엔티티빈의 기본키를 의미한다. 어노테이션은 하나의 인티티에는 반드시 하나가 존재한다.
데이터베이스에 의해 자동으로 생성된 값이다. 즉 프로그램 상에서 조작된 데이터가 아닌 실제 데이터베이스에 데이터가 영속될때 생성되는 값이다. 생성 전략이 존재한다.
필드와 테이블의 컬럼을 매핑시켜준다. 어노테이션은 생략이 가능하며 생략 시 필드의 이름이 테이블의 컬럼으로 자동으로 매핑된다.
java.util.Date와 java.util.Calendar 값을 매핑할 때 사용한다.
데이터베이스 BLOB, CLOB 타입과 매핑된다. CLOB(String, char[], java.sql.CLOB)은 문자, BLOB(byte[], java.sql.BLOB)은 나머지가 매핑된다.
저장 조회에 사용되지도 않고 그냥 단순한 값을 가지고 있을 때 사용한다.
데이터베이스에 엔티티에 값이 저장될 때 필드(AccessType.FIELD)의 값을 직접 접근해서 사용할 것인가 아니면 메서드에 직접(AccessType.PROPERTY) 접근할 것 인가를 설정하는 것 이다.
어노테이션을 사용하면 부모 엔티티 접근 없이 부모 클래스의 매핑정보를 사용할 수 있다.
부모의 내용을 별도로 재정의해서 사용하고 싶은 경우에는 @AttributeOverride를 사용하여 재정의 한다. 여러 개를 한번에 정의하기 위해서는 @AttributeOverrides를 사용한다.