소소한개발팁
article thumbnail
Published 2023. 8. 29. 20:58
JPA - 엔티티 매핑 컴퓨터 언어/Java
반응형

@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
profile

소소한개발팁

@개발자 뱅

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!