
import javax.persistence.*;
@Entity
@Table(name = "Account_Table")
public class Account {
@Id
private Long id;
@Column(name = "account_number")
private String accountNumber;
}
@Entity
클래스를 엔티티로 설정한다. 즉, DB의 테이블로 간주한다. 해당 클래스 내에 선언된 객체들은 테이블에서 필드를 의미한다.
테이블 이름은 클래스명이 디폴트값이다.
@Table
클래스 명과 다른 이름으로 테이블 이름을 지정할 수 있다.
@Id
테이블의 primary key 컬럼으로 지정한다.
@Column
객체명과 다른 이름으로 필드명을 지정할 수 있다.
괄호 안에 다음과 같은 것들을 명시할 수 있다.
속성 | 설명 | 기본값 |
name | 필드와 매핑할 컬럼의 이름 설정 | 객체의 필드 이름 |
nullable | 등록,변경가능여부 | TRUE |
nullable | null 값의 허용 여부를 설정 false로 설정하면 DDL생성 시에 not null 제약조건이 붙는다. | |
unique | @Table의 uniqueConstraints와 같지만 한 컬럼에 간단히 유니크 제 약조건을 걸 때 사용한다. | |
columnDefinition | 데이터베이스 컬럼 정보를 직접 줄 수 있다. 예) @Colnum(columnDefinition = "varchar(5) default '10' not null") | |
precision / scale | BigDecimal / BigInteger 타입에서 사용한다. double, float 타입에는 적용되지 않는다. 아주 큰 숫자나 정 밀한 소수를 다루어야 할 때만 사용한다. precision : 소수점을 포함한 전체 자 릿수 scale : 소수의 자릿수. |
|
length | String 타입의 문자 길이 제약조건 설정 | 255 |
'스프링 > JPA' 카테고리의 다른 글
[Spring Data JPA] NamedQuery 사용하기 (0) | 2022.09.19 |
---|---|
[JPA] 일대다 연관 관계 매핑 (0) | 2022.09.13 |
[JPA] 다대일 연관 관계 매핑 (0) | 2022.09.13 |
[JPA] 엔티티 연관관계의 주인 (0) | 2022.09.13 |
[JPA] @MappedSuperclass 핵심 개념 (0) | 2022.09.09 |