@Entity - 테이블 매핑
JPA 테이블을 매핑한다! @Entity
1. 예제
@Entity(name = "items")
public class Item() {
@Id @GeneratedValue
private Long id;
protected Item() {
}
}
2. JPA를 사용해서 클래스와 테이블을 매핑 시키기 위해서는 @Entity 어노테이션이 필요하다.
@Entity가 적용된 클래스는 다음과 같은 주의사항을 지켜야 한다.
- 기본 생성자가 있어야 한다.
- final 클래스, enum, interface에서는 사용할 수 없다.
- 저장할 필드에 final을 사용하면 안 된다.
@Entity의 속성
- name : 엔터티의 이름을 정의한다. 설정하지 않으면 Class 이름을 그대로 사용한다.
3. 기본 생성자가 있어야 하는 이유
@Entity(name = "items")
public class Item() {
@Id @GeneratedValue
private Long id;
protected Item() {
}
}
@Entity가 적용된 클래스는 다음과 같은 주의사항을 지켜야 한다.
- 기본 생성자가 있어야 한다.
- final 클래스, enum, interface에서는 사용할 수 없다.
- 저장할 필드에 final을 사용하면 안 된다.
@Entity의 속성
- name : 엔터티의 이름을 정의한다. 설정하지 않으면 Class 이름을 그대로 사용한다.
JPA가 엔티티 객체를 사용할 때 기본 생성자를 사용한다.
생성자가 없으면 자바가 기본 생성자를 만들어준다.
단. 임의의 생성자가 존재하면 기본 생성자를 만들어주지 않는다. 이 때는 기본 생성자를 만들어주지 않으므로 직접 만들어야 한다.
4. @Entity 부가내용
- 클래스의 기본 생성자는 protect로 만들어 객체 생성 오사용을 막는다.
- JPA는 "변경감지"를 사용하므로 Setter를 무분별하게 사용할 시 원하지 않는 DB update가 발생될 수 있다. 이것을 막기위해 부득이한 경우를 제외하고 Setter를 열지 않도록 한다.
Author And Source
이 문제에 관하여(@Entity - 테이블 매핑), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@epfzja/JPA-Entity저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)