| 어노테이션 | 설명 |
|---|---|
@Entity | 이 클래스가 JPA 엔티티임을 명시 |
@Table(name = "테이블명") | (선택) DB 테이블 이름 지정 |
@Id | 기본 키(PK) 필드 지정 |
@GeneratedValue | 기본 키 자동 생성 전략 설정 (IDENTITY 등) |
@Column | (선택) 컬럼 상세 설정 (nullable, length 등) |
리플렉션을 통해 객체를 생성하므로 기본 생성자가 반드시 필요함
final 클래스 X → 프록시 생성을 위해 제한
getter/setter는 필요한 범위만 구현
비즈니스 로직보단 데이터 구조와 제약 중심으로 설계
toString() 오버라이드 시 연관 관계 필드 주의 (순환 참조 발생 가능)
@Entity
@Table(name = "users")
public class User {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
@Column(nullable = false, length = 50)
private String name;
protected User() {} // 기본 생성자 반드시 필요
public User(String name) {
this.name = name;
}
// Getter/Setter 생략
}
@Getter, @Setter, @NoArgsConstruction, @AllArgsConstruction 등 롬복 어노테이션을 사용해도 됨