반응형
@Entity 어노테이션
JPA에서 엔티티를 정의하기 위해 @Entity 어노테이션을 사용합니다. 이 어노테이션을 클래스 위에 붙여 해당 클래스가 데이터베이스의 테이블과 매핑될 엔티티임을 선언합니다.
@Entity
public class Product {
// 엔티티의 속성과 매핑 정보가 여기에 들어갑니다.
}
식별자 매핑
각 엔티티는 데이터베이스에서 고유하게 식별되는 식별자(primary key)를 가져야 합니다. JPA에서는 @Id 어노테이션을 사용하여 엔티티의 식별자를 지정합니다. 또한, 데이터베이스가 식별자 값을 자동으로 생성하도록 하려면 @GeneratedValue 어노테이션도 함께 사용합니다.
@Entity
public class Product {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
// ...
}
컬럼 매핑
객체의 필드와 데이터베이스의 컬럼 간의 매핑은 @Column 어노테이션을 사용하여 설정합니다. 이를 통해 필드의 이름, 길이, NULL 허용 여부 등을 지정할 수 있습니다.
@Entity
public class Product {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
@Column(name = "product_name", length = 100, nullable = false)
private String name;
@Column(name = "product_price")
private double price;
// ...
}
테이블 매핑
@Table 어노테이션을 사용하여 엔티티 클래스와 데이터베이스 테이블 간의 매핑 정보를 설정할 수 있습니다. 테이블의 이름, 스키마 등을 지정할 수 있습니다.
@Entity
@Table(name = "products", schema = "public")
public class Product {
// ...
}
기본 키 매핑
기본 키(primary key)를 복합키로 구성하려면 @IdClass 또는 @EmbeddedId 어노테이션을 사용하여 복합키 클래스를 정의하고 매핑합니다.
@Entity
@IdClass(OrderProductId.class)
public class OrderProduct {
@Id
@ManyToOne
@JoinColumn(name = "order_id")
private Order order;
@Id
@ManyToOne
@JoinColumn(name = "product_id")
private Product product;
// ...
}
Enum 매핑
Java Enum 타입을 데이터베이스 컬럼과 매핑할 때는 @Enumerated 어노테이션을 사용합니다.
@Entity
public class Product {
// ...
@Enumerated(EnumType.STRING)
private ProductCategory category;
// ...
}
반응형
'컴퓨터 언어 > Java' 카테고리의 다른 글
JPA - 영속성 (0) | 2023.09.01 |
---|---|
JPA - 주요 엔티티 12가지 (0) | 2023.08.29 |
JPA 기본 개념과 활용 방법 (0) | 2023.08.29 |
Project Jigsaw 사용 방법 (0) | 2023.07.09 |
Stream (0) | 2023.07.06 |