SlideShare a Scribd company logo
1 of 5
JPA 필드 와 컬럼 매핑 레퍼런스
JPA 필드 와 컬럼 매핑 레퍼런스
•@Column : 컬럼을 매핑한다.
•@Enumerated : enum 타입을 매핑한다.
•@Temporal : 날짜 타입 매핑한다.
•@Lob : BLOB, CLOB 타입을 매핑한다.
•@Transient : 해당 필드를 데이터 베이스에 매핑 시키지 않는다.
•@Access : JPA가 엔티티 접근하는 방식을 지정한다.
@Column
name : 필드와 매핑할 테이블의 컬럼 이름
insertable : 엔티티 저장시 이 필드도 같이 저장한다. false로 설정하면 데이터베이스에 저장하지 않는다. 읽기 전용일때 사용한다.
updatable : 위와 동일한 하지만 수정일때 해당 된다.
nullable(DDL) : null 값 허용 여부를 설정한다. false일 경우 DDL생성시 not null 제약조건이 된다.
unique(DDL) : 한 컬럼에 간단히 유니크 제약 조건을 걸 때 사용한다. 만약 두개 이상 걸고 싶다면 클래스 레벨에서
@Table.uniqueConstraints를 사용해야 한다.
columnDefinition(DDL) : 데이터베이스 컬럼 정보를 직접 줄 수 있다.
length : 문자 길이 제약 조건이다. String만 해당된다.
precision, scale(DDL) : BigDecimal 타입에서 사용한다.(BigInteger 가능) precision은 소수점을 포함한 전체 자리수 이고, scale은
소수점 자릿수이다. double랑 float타입에는 적용 되지 않는다.
@Enumerated
value : EnumType.ORDINAL값은 enum 순서를 데이터 베이스에 저장한다. EnumType.STRING값은 enum 이름을
저장한다.
Ex)
enum RoleType {
ADMIN, USER
}
@Enumerated(EnumType.STRING)
private RoleType roleType;
m.setRoleType(RoleType.ADMIN) //ADMIN으로 저장된다.
보통은 STRING을 쓰는 것을 권장한다.
@Temporal
value : TemporalType.DATE는 날짜,
데이터베이스 date 타입과 매핑 (2016-04-19),
TemporalType.TIME 시간, 데이터베이스 time 타입과 매핑 (21:22:11)
TemporalType.TIMESTAMP : 날짜와 시간, 데이터베이스 timestamp 타입과 매핑(2016-04-19 21:22:11)
@Lob
속성이 없다. 대신 매핑하는 필드 타입이 문자라면 CLOB으로 매핑하고 나머지는 다 BLOB으로 매핑하면 된다.
CLOB : String, char[], java.sql.CLOB
BLOB : byte[], java.sql.BLOB
@Transient
위와 같이 선언된 필드는 데이터베이스에 저장, 조회도 하지않는다. 임시로 값을 보관할 때 사용한다.
@Access
필드 접근 : AccessType.FIELD로 지정한다.필드에 직접 접근한다. private 권한이여도 접근할 수 있다.
프로퍼티 접근 : AccessType.PROPERTY로 지정한다. 접근자 getter로 접근한다.
@Entity
public class Member {
@Id
private String id;
@Transient
private String firstName;
@Transient
private String lastName;
@Access(AccessType.PROPERTY)
public String getFullName(){ return this.firstName + this.lastName;
} ...
}
@Id가 필드에 있으면 기본적으로 필드접근 방식을 사용한다.
만약 프로퍼티에 있으면 기본적으로 프로퍼티접근 방식을 사용한다.
위의 코드는 @Id가 필드에 있으므로 필드 접근 방식을 사용하고 getFullName만 프로퍼티를 사용한다.
그러면 회원이라는 엔티티의 FULLNAME 컬럼이 생성되고 firstName + lastName의 결과가 저장된다.

More Related Content

Viewers also liked

Tesis unidad anialisis fianciero disertacion tesis 2015 (2)
Tesis unidad anialisis fianciero disertacion tesis 2015 (2)Tesis unidad anialisis fianciero disertacion tesis 2015 (2)
Tesis unidad anialisis fianciero disertacion tesis 2015 (2)Sara Zambra
 
Putting People First - Building and Sustaining Awesome Distributed Teams at S...
Putting People First - Building and Sustaining Awesome Distributed Teams at S...Putting People First - Building and Sustaining Awesome Distributed Teams at S...
Putting People First - Building and Sustaining Awesome Distributed Teams at S...Thoughtworks
 
Infographics for Fun and Profit DreamForce 2014
Infographics for Fun and Profit DreamForce 2014Infographics for Fun and Profit DreamForce 2014
Infographics for Fun and Profit DreamForce 201497th Floor
 
Untitleddocument
UntitleddocumentUntitleddocument
Untitleddocumentbeita1994
 
Programa de eventos
Programa de eventosPrograma de eventos
Programa de eventossebastian333
 
ИНТЕРАКТИВНЫЙ ЖУРНАЛ
ИНТЕРАКТИВНЫЙ ЖУРНАЛИНТЕРАКТИВНЫЙ ЖУРНАЛ
ИНТЕРАКТИВНЫЙ ЖУРНАЛkulibin
 
NJ Future Sandy One Year Later Planning Sturm Oct 29 2013
NJ Future Sandy One Year Later Planning Sturm Oct 29 2013NJ Future Sandy One Year Later Planning Sturm Oct 29 2013
NJ Future Sandy One Year Later Planning Sturm Oct 29 2013New Jersey Future
 
Componente tecnológico ceres santander de quilichao
Componente tecnológico ceres santander de quilichaoComponente tecnológico ceres santander de quilichao
Componente tecnológico ceres santander de quilichaovictorgiron
 
TCC Metagame book club
TCC Metagame book clubTCC Metagame book club
TCC Metagame book clubcenter4edupunx
 
”宿”から”カフェ”へ
”宿”から”カフェ”へ”宿”から”カフェ”へ
”宿”から”カフェ”へstucon
 
olenka flores gutierrez-el internet
olenka flores gutierrez-el internetolenka flores gutierrez-el internet
olenka flores gutierrez-el internetpinquipay
 
Rowing Travel as Club Development
Rowing Travel as Club DevelopmentRowing Travel as Club Development
Rowing Travel as Club DevelopmentRuth Marr
 
30 DAY CHALLENGE OF PTEASLIM - LOSS YOUR WEIGHT WITHING 30 DAYS.
30 DAY CHALLENGE OF PTEASLIM - LOSS YOUR WEIGHT WITHING 30 DAYS.30 DAY CHALLENGE OF PTEASLIM - LOSS YOUR WEIGHT WITHING 30 DAYS.
30 DAY CHALLENGE OF PTEASLIM - LOSS YOUR WEIGHT WITHING 30 DAYS.noyon sazu
 
ASCEND Content Marketing Power Tools
ASCEND Content Marketing Power ToolsASCEND Content Marketing Power Tools
ASCEND Content Marketing Power ToolsAWeber
 
Say microservices again! (Clermont'ech 01/03/2016)
Say microservices again! (Clermont'ech 01/03/2016)Say microservices again! (Clermont'ech 01/03/2016)
Say microservices again! (Clermont'ech 01/03/2016)Daniel Petisme
 
Higher ED SEO Tips: Power Up Online Visibility!
Higher ED SEO Tips: Power Up Online Visibility!Higher ED SEO Tips: Power Up Online Visibility!
Higher ED SEO Tips: Power Up Online Visibility!Beacon
 
Boletín InfoSACU 35/2016
Boletín InfoSACU 35/2016Boletín InfoSACU 35/2016
Boletín InfoSACU 35/2016Sacu Uhu
 

Viewers also liked (20)

Tesis unidad anialisis fianciero disertacion tesis 2015 (2)
Tesis unidad anialisis fianciero disertacion tesis 2015 (2)Tesis unidad anialisis fianciero disertacion tesis 2015 (2)
Tesis unidad anialisis fianciero disertacion tesis 2015 (2)
 
Putting People First - Building and Sustaining Awesome Distributed Teams at S...
Putting People First - Building and Sustaining Awesome Distributed Teams at S...Putting People First - Building and Sustaining Awesome Distributed Teams at S...
Putting People First - Building and Sustaining Awesome Distributed Teams at S...
 
Infographics for Fun and Profit DreamForce 2014
Infographics for Fun and Profit DreamForce 2014Infographics for Fun and Profit DreamForce 2014
Infographics for Fun and Profit DreamForce 2014
 
Untitleddocument
UntitleddocumentUntitleddocument
Untitleddocument
 
Salmos e hinos 145
Salmos e hinos 145Salmos e hinos 145
Salmos e hinos 145
 
Programa de eventos
Programa de eventosPrograma de eventos
Programa de eventos
 
ИНТЕРАКТИВНЫЙ ЖУРНАЛ
ИНТЕРАКТИВНЫЙ ЖУРНАЛИНТЕРАКТИВНЫЙ ЖУРНАЛ
ИНТЕРАКТИВНЫЙ ЖУРНАЛ
 
NJ Future Sandy One Year Later Planning Sturm Oct 29 2013
NJ Future Sandy One Year Later Planning Sturm Oct 29 2013NJ Future Sandy One Year Later Planning Sturm Oct 29 2013
NJ Future Sandy One Year Later Planning Sturm Oct 29 2013
 
Componente tecnológico ceres santander de quilichao
Componente tecnológico ceres santander de quilichaoComponente tecnológico ceres santander de quilichao
Componente tecnológico ceres santander de quilichao
 
TCC Metagame book club
TCC Metagame book clubTCC Metagame book club
TCC Metagame book club
 
”宿”から”カフェ”へ
”宿”から”カフェ”へ”宿”から”カフェ”へ
”宿”から”カフェ”へ
 
olenka flores gutierrez-el internet
olenka flores gutierrez-el internetolenka flores gutierrez-el internet
olenka flores gutierrez-el internet
 
Cash Center brochure
Cash Center brochureCash Center brochure
Cash Center brochure
 
Rowing Travel as Club Development
Rowing Travel as Club DevelopmentRowing Travel as Club Development
Rowing Travel as Club Development
 
30 DAY CHALLENGE OF PTEASLIM - LOSS YOUR WEIGHT WITHING 30 DAYS.
30 DAY CHALLENGE OF PTEASLIM - LOSS YOUR WEIGHT WITHING 30 DAYS.30 DAY CHALLENGE OF PTEASLIM - LOSS YOUR WEIGHT WITHING 30 DAYS.
30 DAY CHALLENGE OF PTEASLIM - LOSS YOUR WEIGHT WITHING 30 DAYS.
 
Actividad 1.5 b
Actividad 1.5 bActividad 1.5 b
Actividad 1.5 b
 
ASCEND Content Marketing Power Tools
ASCEND Content Marketing Power ToolsASCEND Content Marketing Power Tools
ASCEND Content Marketing Power Tools
 
Say microservices again! (Clermont'ech 01/03/2016)
Say microservices again! (Clermont'ech 01/03/2016)Say microservices again! (Clermont'ech 01/03/2016)
Say microservices again! (Clermont'ech 01/03/2016)
 
Higher ED SEO Tips: Power Up Online Visibility!
Higher ED SEO Tips: Power Up Online Visibility!Higher ED SEO Tips: Power Up Online Visibility!
Higher ED SEO Tips: Power Up Online Visibility!
 
Boletín InfoSACU 35/2016
Boletín InfoSACU 35/2016Boletín InfoSACU 35/2016
Boletín InfoSACU 35/2016
 

More from Jong Woo Rhee

More from Jong Woo Rhee (10)

Git hub repository 관리 방안
Git hub repository 관리 방안Git hub repository 관리 방안
Git hub repository 관리 방안
 
Connection pool
Connection poolConnection pool
Connection pool
 
RabbitMQ
RabbitMQRabbitMQ
RabbitMQ
 
Postgresql stored procedure
Postgresql stored procedurePostgresql stored procedure
Postgresql stored procedure
 
Ionic project guide
Ionic project guideIonic project guide
Ionic project guide
 
Ionics구조
Ionics구조Ionics구조
Ionics구조
 
Java8 람다
Java8 람다Java8 람다
Java8 람다
 
Hibernate 기초
Hibernate 기초Hibernate 기초
Hibernate 기초
 
Glances
GlancesGlances
Glances
 
Jmeter
JmeterJmeter
Jmeter
 

Jpa 필드 와 컬럼 매핑 레퍼런스

  • 1. JPA 필드 와 컬럼 매핑 레퍼런스
  • 2. JPA 필드 와 컬럼 매핑 레퍼런스 •@Column : 컬럼을 매핑한다. •@Enumerated : enum 타입을 매핑한다. •@Temporal : 날짜 타입 매핑한다. •@Lob : BLOB, CLOB 타입을 매핑한다. •@Transient : 해당 필드를 데이터 베이스에 매핑 시키지 않는다. •@Access : JPA가 엔티티 접근하는 방식을 지정한다. @Column name : 필드와 매핑할 테이블의 컬럼 이름 insertable : 엔티티 저장시 이 필드도 같이 저장한다. false로 설정하면 데이터베이스에 저장하지 않는다. 읽기 전용일때 사용한다. updatable : 위와 동일한 하지만 수정일때 해당 된다. nullable(DDL) : null 값 허용 여부를 설정한다. false일 경우 DDL생성시 not null 제약조건이 된다. unique(DDL) : 한 컬럼에 간단히 유니크 제약 조건을 걸 때 사용한다. 만약 두개 이상 걸고 싶다면 클래스 레벨에서 @Table.uniqueConstraints를 사용해야 한다. columnDefinition(DDL) : 데이터베이스 컬럼 정보를 직접 줄 수 있다. length : 문자 길이 제약 조건이다. String만 해당된다. precision, scale(DDL) : BigDecimal 타입에서 사용한다.(BigInteger 가능) precision은 소수점을 포함한 전체 자리수 이고, scale은 소수점 자릿수이다. double랑 float타입에는 적용 되지 않는다.
  • 3. @Enumerated value : EnumType.ORDINAL값은 enum 순서를 데이터 베이스에 저장한다. EnumType.STRING값은 enum 이름을 저장한다. Ex) enum RoleType { ADMIN, USER } @Enumerated(EnumType.STRING) private RoleType roleType; m.setRoleType(RoleType.ADMIN) //ADMIN으로 저장된다. 보통은 STRING을 쓰는 것을 권장한다.
  • 4. @Temporal value : TemporalType.DATE는 날짜, 데이터베이스 date 타입과 매핑 (2016-04-19), TemporalType.TIME 시간, 데이터베이스 time 타입과 매핑 (21:22:11) TemporalType.TIMESTAMP : 날짜와 시간, 데이터베이스 timestamp 타입과 매핑(2016-04-19 21:22:11) @Lob 속성이 없다. 대신 매핑하는 필드 타입이 문자라면 CLOB으로 매핑하고 나머지는 다 BLOB으로 매핑하면 된다. CLOB : String, char[], java.sql.CLOB BLOB : byte[], java.sql.BLOB @Transient 위와 같이 선언된 필드는 데이터베이스에 저장, 조회도 하지않는다. 임시로 값을 보관할 때 사용한다.
  • 5. @Access 필드 접근 : AccessType.FIELD로 지정한다.필드에 직접 접근한다. private 권한이여도 접근할 수 있다. 프로퍼티 접근 : AccessType.PROPERTY로 지정한다. 접근자 getter로 접근한다. @Entity public class Member { @Id private String id; @Transient private String firstName; @Transient private String lastName; @Access(AccessType.PROPERTY) public String getFullName(){ return this.firstName + this.lastName; } ... } @Id가 필드에 있으면 기본적으로 필드접근 방식을 사용한다. 만약 프로퍼티에 있으면 기본적으로 프로퍼티접근 방식을 사용한다. 위의 코드는 @Id가 필드에 있으므로 필드 접근 방식을 사용하고 getFullName만 프로퍼티를 사용한다. 그러면 회원이라는 엔티티의 FULLNAME 컬럼이 생성되고 firstName + lastName의 결과가 저장된다.