엔티티 매핑

HakJun·2022년 10월 6일
1

Spring-JPA

목록 보기
7/7

1. 엔티티 매핑 소개

  • 연관관계 매핑 : 멤버와 팀, 회원이 어디 소속되어있는지 1대다 , 다대1 다대다
  • 객체와 테이블 매핑 : @Entity, @Table
  • 필드와 칼럼 매핑 : @Column
  • 기본 키 매핑 : @Id

2.Entity

  • @Entity가 붙은 클래스는 JPA가 관리, 엔티티라 한다.
  • 기본 생성자 필수 : jpa같은 구현해서 쓰는 라이브러리들은 동적으로 기술들을 할때 필요
  • final 클래스, enum, interface, inner 클래스 사용X
  • 저장할 필드에 final 사용불가

3. Entity속성

  • JPA에서 사용할 엔티티 이름을 지정한다.
  • 기본값: 클래스 이름을 그대로 사용(예: Member)
  • 같은 클래스 이름이 없으면 가급적 기본값을 사용한다.

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

  • DDL을 애플리케이션 실행 시점에 자동 생성
  • 테이블 중심 에서 객체 중심으로 변화하였다.
  • 방언 활용 -> 오라클은 VARCHAR2, MYSQL은 VARCHAR 방언에 맞춰 DDL문을 적절하게 생성해준다.
<property name="hibernate.hbm2ddl.auto" value="create">


ㄴ 해당 코드로 create 모드 이므로 삭제된 후 다시 테이블이 생성된 것을

  • create-drop : 테스트시 깔끔 종료할때
  • validate : 정상 매핑되었는지 확인할 때 사용한다.


ㄴ validate시 부적절한 column 을 생성했을 때 에러코드가 나타난다.

5. DDL 생성기능

  • 제약조건 추가 가능 : 회원 이름은 필수, 10자 초과X
    ㄴ @Column(nullable = false, length = 10)
  • 유니크 제약 조건 추가
    ㄴ@Table(uniqueConstraints = {@UniqueConstraint( name = "NAME_AGE_UNIQUE",
    columnNames = {"NAME", "AGE"} )})
  • DDL 생성 기능은 DDL을 자동 생성할 때만 사용되고
    JPA의 실행 로직에는 영향을 주지 않는다.
profile
백엔드 & 전공 공부

0개의 댓글