본문 바로가기
  • 개발공부 및 일상적인 내용을 작성하는 블로그 입니다.
JPA

필드와 컬럼 매핑 - 2

by 방구석 대학생 2020. 9. 19.

"인프런 - 자바 ORM 표준 JPA 프로그래밍 강의를 듣고 작성한 글 입니다."

www.inflearn.com/course/ORM-JPA-Basic#

 

자바 ORM 표준 JPA 프로그래밍 - 기본편 - 인프런

JPA를 처음 접하거나, 실무에서 JPA를 사용하지만 기본 이론이 부족하신 분들이 JPA의 기본 이론을 탄탄하게 학습해서 초보자도 실무에서 자신있게 JPA를 사용할 수 있습니다. 초급 웹 개발 프로그

www.inflearn.com

 

- @Column 어노테이션(사실 제일 중요한 어노테이션 이다.)

@Column 어노테이션 에서 사용하는 속성

- name 속성 : 필드와 매핑할 테이블의 컬럼 이름을 지정한다.(기본값 : 객체의 필드 이름)

 

- insertable, updateable(true, false) 속성 : 컬럼을 수정했을 때 데이터베이스에 변경사항을 반영할지 말지를 결정하는것(기본값 : true)

 

- nullable 속성 : null 값의 허용여부를 설정하는 속성이다. false 로 지정하게 되면 not null 제약조건이 걸리게 된다.(자주 쓰일수 있음)

 

- unique 속성 : @Table 의 uniqueConstraints 와 같지만 한 컬럼에 간단히 유니크 제약조건을 걸 때 사용한다.

도메인 클래스에서 어노테이션으로 사용하면 이름이 랜덤으로 지정되어서 이상하게 나온다.(운영에서는 쓰기 힘듬) 즉, 이름을 반영하기 힘들어진다.

차라리 @Table 어노테이션 에서 uniqueConstraints 속성을 사용하면 이름을 지정해 줄 수 있다.(이 방법을 선호하게 된다.)

 

- length 속성 : 문자 길이 제약조건, String 타입에만 이용한다.(컬럼 길이 제한)(기본값 : 255)

 

- columnDefinition 속성 : 데이터베이스 컬럼에 대한 정보를 직접 줄 수 있다.

예시 : columnDefinition = "vachar(100) default 'EMPTY'"

 

- precision, scale 속성 : BigDecimal 타입이나 BigInteger 타입의 필드에 사용하는 속성, 필드 값이 아주 크거나 소수점이 아주 길 때 사용할 수 있다.

precision 은 소수점을 포함한 전체 자릿수를, scale 은 소수의 자릿수이다. 참고로 double, float 타입에는 적용되지 않는다. 아주 큰 숫자나 정밀한 소수를 다루어야 할 때만 사용한다.(기본값 : precision = 19, scale = 2)

'JPA' 카테고리의 다른 글

기본 키 매핑 - 2  (0) 2020.09.21
기본 키 매핑 - 1  (0) 2020.09.21
필드와 컬럼 매핑 - 1  (0) 2020.09.19
객체와 테이블 간 Entity 매핑  (0) 2020.09.19
준영속 상태에 대하여....  (0) 2020.09.12