Notice
Recent Posts
Recent Comments
Link
«   2024/10   »
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31
Tags
more
Archives
Today
Total
관리 메뉴

공hannah부

자바 ORM 표준 JPA 프로그래밍 CH04 (엔티티 매핑) 본문

공부/백엔드

자바 ORM 표준 JPA 프로그래밍 CH04 (엔티티 매핑)

Hannah0226 2023. 6. 26. 22:21

@Entity

  • Entity 속성

  • 적용시 주의사항
    • 기본 생성자 필수
    • final 클래스, enum, interface, inner 클래스에는 사용 X
    • 저장할 필드에 final 사용 X

@Table

  • Table 속성


데이터베이스 스키마 자동 생성

  • <property name="hibernate.hbm2ddl.auto" value="create" /> 이 속성을 추가하면 애플리케이션 실행 시점에 데이터베이스 테이블을 자동으로 생성한다.
  • hibernate.hbm2ddl.auto 속성


DDL 생성기능

  • 스키마 자동 생성하기를 통해 만들어지는 DDL에 제약조건 추가해보기
    • @Column(name = "NAME", nullable = false, length = 10)
    • nullable속성 값을 false로 지정하면 자동 생성되는 DDL에 not null 제약 조건 추가됨
    • length 속성 값을 사용하면 자동 생성되는 DDL에 문자의 크기 지정됨
  • DDL에 유니크 제약조건 추가해보기
    • @Table(name = "MEMBER", uniqueConstraints = {@UniqueConstraint( . . . )})

기본 키 매핑

JPA가 제공하는 데이터베이스 기본 키 생성 전략

  • 직접 할당: 기본 키를 애플리케이션에 직접 할당
    • em.persist()를 호출하기 전에 애플리케이션에서 직접 식별자 값을 할당해야한다. 만약 식별자 값이 없으면 예외 발생
  • 자동 생성: 대리 키 사용 방식
    • IDENTITY: 기본 키 생성을 데이터베이스에 위임 / 데이터베이스 시퀀스에서 식별자 값을 획득한 후 영속성 컨텍스트에 저장
    • SEQUENCE: 데이터베이스 시퀀스를 사용해서 기본키를 할당 / 데이터베이스 시퀀스 생성용 테이블에서 식별자 값을 획득한 후 영속성 컨텍스트에 저장
    • TABLE: 키 생성 테이블을 사용 / 데이터베이스에 엔티티를 저장해서 식별자 값을 획득한 후 영속성 컨텍스트에 저장

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

  • 필드와 컬럼 매핑 분류

  • @Column 속성 정리

  • @Enumerated 속성 정리

  • @Temporal 속성 정리

  • @Lob 속성 정리
    • @Lob에는 지정할 수 있는 속성이 없다.
    • 대신 매핑하는 필드 타입이 문자면 CLOB으로 매핑하고 나머지는 BLOB으로 매핑
    • CLOB: String, char[], java.sql.CLOB
    • BLOB: byte[], java.sql.BLOB
  • @Transient
    • 이 필드는 매핑 x
  • @Access
    • JPA가 엔티티 데이터에 접근하는 방식 지정
    • 필드 접근: AccessType.FIELD로 지정
    • 프로퍼티 접근: AccessType.PROPERTY로 지정

 

자바 ORM 표준 JPA 프로그래밍 : 네이버 도서

네이버 도서 상세정보를 제공합니다.

search.shopping.naver.com