엔티티 매핑

유신·2021년 5월 26일

스프링

목록 보기
2/8

엔티티 매핑 (간략정리)

- 객체와 테이블 매핑 : @Entity , @Table
- 필드와 컬럼 매핑: @Column
- 기본 키 매핑 @Id
- 연관관계 매핑: @ManyToOne, @JoinColumn

객체와 테이블 매핑

1. @Entity
JPA가 관리, 엔티티라고 한다.
JPA를 사용해서 테이블과 매핑할 클래스는 @Entity필수'
  • 주의
    기본 생성자 필수(파라미터가 없는 public 또는 protected생성자)
    final 클래스,enum, interface,inner 클래스 사용 X
    저장할 필드에 final사용 X
    .

2 @Table
엔티티와 매핑할 테이블 지정

  • 속성 - name 매핑할 테이블 이름 --> 기본값 엔티티 이름을 사용


3. 데이터 베이스 스카마 자동생성
DDL을 애플리케이션 실행 시점에 자동 생성
테이블 중심 -> 객체중심
데이터베이스 방언을 활용해서 데이터베이스에 맞는 적절한 DDL생성

이렇게 생성된 DDL은 개발 장비에서만 사용


필드와 컬럼 매핑

@Column : 컬럼매핑
@Temporal : 날짜 타입 매핑
@Enumerated : enum 타입 매핑
@Lob : BLOB,CLOB 매핑 (String보다 큰타입 저장 할 경우)
@Transient : 특정 필드를 컬럼에 매핑하지 않음( 매핑 무시) - > 메모리에서만 사용 DB에는 없음

  • Column
    nullalbe(ddl), length(ddl) - >문자 길이 제약조건 String에서만 사용가능

  • Enumerated
    자바 enum타입을 매핑할 떄 사용
    속성 value 값 ORDINAL 사용 XX

  • Temporal
    날짜 타입을 매핑할 떄 사용
    LocalDate, LocalDateTime을 사용할 때는 생략 가능

  • LOB
    데이터베이스 BLOb,CLOB 타입과 매핑
    속성 x
    매핑하는 필드 타입이 문자면 CLOB 매핑 , 나머지는 BLOB매핑

  • Transient
    필드 매핑X
    데이터베이스에 저장x조회 x
    주로 메모리상에서만 임시로 어떤 값을 보관하고 싶을 떄 사용


기본 키 매핑

  • @Id
  • @GeneratedValue
  1. 매핑 방법
    직접 할당:@Id만 사용 - > String을 이용해서 직접 할당
    자동 생성(@GeneratedValue)
속성 - 전략
* IDENTITY 데이터베이스에 위임 ,MYSQL
* SEQUENCE : 데이터베이스 시퀀스 오브젝트 사용, ORACLE
@SequenceGenerator 필요
* TABLE 키 생성용 테이블 사용 모든 DB에서 사용
@TableGenerator 필요
* AUTO 방언에 따라 자동 지정 기본값
profile
초보개발자

0개의 댓글