엔티티 매핑


엔티티 매핑 소개

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


객체와 테이블 매핑

@Entity

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

Entity 속성

    1. name
      • JPA에서 사용할 엔티티 이름을 지정한다.
      • 기본값: 클래스 이름을 그대로 사용한다.
      • 같은 클래스 이름이 없으면 가급적 기본값을 사용한다.
    1. Table
      • @Table은 엔티티와 매핑할 테이블을 지정 @Table(name =”MBR”)
      • 위 처럼 지정하면 데이터베이스 테이블의 MBR 로 쿼리가 진행된다.

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

  • JPA는 객체만 매핑해놓으면 테이블 다 만들어줌
  • DDL을 애플리케이션 실행 시점에 자동 생성
  • 테이블 중심 -> 객체 중심
  • 데이터베이스 방언을 활용해서 데이터베이스에 맞는 적절한 DDL 생성
  • 개발단계에서만 써야함, 운영서버에서는 사용하지 않는게 좋음

  • 을 통해 설정

Alter table을 통해 개발할 때 번거로움이 없으니깐 유지보수 할 때 유리할것 같다.

  • 개발 초기 단계 설정 : create or update
  • 테스트 서버 : update or validate
  • 스테이징과 운영서버 : validate or none


DDL 생성기능

  • 제약조건 추가 : 회원 이름은 필수, 10자 초과 x
  • @Column(unique = true, length =10)
  • private String name;
  • DDL 생성기능은 DDL을 자동 생성할 때만 사용되고 JPA의 실행로직에는 영향을 끼치지 않는다.


😄 참고 : 인프런 김영한님의 JPA 기본 강의 및 교재 , 블로그

🌜 개인 공부 기록용 블로그입니다. 오류나 틀린 부분이 있을 경우 언제든지 댓글 혹은 메일로 지적해주시면 감사하겠습니다! 😄

개인메모

태그:

카테고리:

업데이트: