JPA
JPA 사용되는 어노테이션 모음 @Entity, @Id, @Table, @Column - name - nullable - unique - length , @Enumerated - STRING, @Temporal, LocalDate, LocalDateTime, @Lob, jpa의 BigDecimal 만드는법, @Transient 등
✨✨✨✨✨✨✨
2023. 5. 21. 22:17
반응형
@Entity
- 내용: 해당 클래스가 엔티티임을 나타내는 어노테이션입니다.
- 설명: JPA가 해당 클래스를 데이터베이스 테이블과 매핑합니다.
- 예제:
@Entity @Table(name = "users") public class User { //... }
@Id
- 내용: 해당 필드가 엔티티의 식별자(primary key)임을 나타내는 어노테이션입니다.
- 설명: 엔티티의 식별자 필드를 지정할 때 사용합니다.
- 예제:
@Id private Long id;
@Table
- 내용: 엔티티와 매핑될 테이블의 이름을 지정하는 어노테이션입니다.
- 설명: 엔티티를 매핑할 테이블의 이름을 지정합니다.
- 예제:
@Entity @Table(name = "users") public class User { //... }
@Column
- 내용: 엔티티의 필드를 데이터베이스 테이블의 컬럼과 매핑하기 위해 사용하는 어노테이션입니다.
- 설명: 필드와 컬럼 사이의 매핑 정보를 지정합니다.
- 예제:
@Column(name = "first_name", nullable = false, unique = true, length = 50) private String firstName;
@Enumerated
- 내용: Enum 타입 필드를 매핑할 때 사용되는 어노테이션입니다.
- 설명: Enum 값을 어떤 형태로 데이터베이스에 저장할지를 지정합니다. 여기서는
STRING
을 예로 들겠습니다. - 예제:
@Enumerated(EnumType.STRING) @Column(name = "gender") private Gender gender;
@Temporal
- 내용: 날짜와 시간 타입 필드를 매핑할 때 사용되는 어노테이션입니다.
- 설명: 날짜와 시간 타입의 필드를 어떤 형태로 데이터베이스에 저장할지를 지정합니다.
DATE
,TIME
,TIMESTAMP
중 하나를 선택하여 사용할 수 있습니다. - 예제:
@Temporal(TemporalType.DATE) @Column(name = "birth_date") private Date birthDate;
LocalDate, LocalDateTime
- 내용: JPA 2.2부터 지원되는 자바 8 이상의 날짜와 시간 타입입니다.
- 설명: 날짜 또는 날짜와 시간을 저장하는 필드에 사용됩니다.
- 예제:
@Column(name = "created_at") private LocalDateTime createdAt;
@Column(name = "birth_date")
private LocalDate birthDate;
**@Lob**
- 내용: 큰 크기의 데이터를 매핑하기 위해 사용되는 어노테이션입니다.
- 설명: 일반적으로 CLOB(Character Large Object)나 BLOB(Binary Large Object) 타입 필드와 매핑됩니다.
- 예제:
```java
@Lob
@Column(name = "description")
private String description;
BigDecimal
- 내용: JPA에서
BigDecimal
타입 필드를 매핑하기 위해서는@Column(precision = X, scale = Y)
와 같이precision
과scale
을 지정해야 합니다.precision
은 전체 자릿수를,scale
은 소수점 이하 자릿수를 나타냅니다. - 설명: 큰 정밀도와 소수점을 필요로 하는 금액이나 숫자와 같은 필드에 사용됩니다.
- 예제:
@Column(name = "price", precision = 10, scale = 2) private BigDecimal price;
@Transient
- 내용: 해당 필드를 데이터베이스에 매핑하지 않고 무시하도록 지정하는 어노테이션입니다.
- 설명: 엔티티에 속하지만 데이터베이스에 저장할 필요가 없는 임시 필드에 사용됩니다.
- 예제:
@Transient private String transientField;
위의 내용은 JPA에서 사용되는 주요 어노테이션들과 해당 어노테이션의 내용, 설명, 예제를 포함하고 있습니다. 실제 사용 시에는 이러한 어노테이션들을 적절히 활용하여 엔티티 클래스를 구성하시면 됩니다.
아래는 간단하게 표로 정리한 내용입니다.
반응형