spring boot/JPA - 기본

jpa - 엔티티 매핑

ballde 2021. 10. 21. 15:44
  • 객체와 테이블 매핑
    • @Entity - jpa가 관리한다.
    • @Table
    • 기본 생성자는 필수
  • ddl auto
    • create                 - drop하고 생성
    • create-drop       - create했다가 끝나면 drop한다.
    • update.               - 변경 부분만 반영한다.
    • validate.              - 기존 db와 비교해서 다르면 애러
    • none
****주의
개발 초기에는 create , update
테스트 서버는 update, validate
스테이징 운영서버는 validate 또는 None
  • 필드와 칼럼
    • @Column(name ="", length = 10) - 유니크 조건을 여기다가 걸 수 있지만 이름을 줄 수 없으므로 @Table에 줌
      • => 보통 애플리케이션: memberId db: member_id
      • => spring boot가 알아서 memberId로 entity를 만들면 db에 member_id
    • @CloumnDefinition - 직접 타입하고 조건을 넣어줌
    • @Temporal - 날짜 타입 매핑
    • @Enumerated(EnumType.STRING) - enum 타입 매핑
    • @Lob - BLOB, CLOB 매핑
    • @Transiedn 특정 필드를 칼럼에 포함X
  • 기본 키 매핑
    • 기본 키 제약 조건: null 아님, 유일, 변하면 안된다.
    • Long형 + 대체키 + 키 생성전략 사용
    • @GeneratedValue(starategy = IDENTITY)
      • 영속성 컨텍스트가 em.persist하면 sql날리고 읽어옴.
      • => null로 db에 넣어주면 알아서 생성해줘서 db에 들어가야지 알 수 있기때문에 예외로 em.persist할때 sql날림
  • 연관관계 매핑
    • 객체의 참조와 테이블의 외래 키를 매핑

만약 연관관계가 안되어 있을 경우

Member findMember = em.find(Member.class, member.getId());
Long findTeamId = findMember.getTeamId();
Team findTeam = em.find(Team.class, findTeamId);

이렇게 member의 teamId를 가져와서 Team을 가져와야 한다.

이것에 관해서 다음번에 써보겠습니다.

'spring boot > JPA - 기본' 카테고리의 다른 글

JPA - proxy(프록시)  (0) 2021.11.13
JPA - 상속관계 매핑  (0) 2021.11.08
JPA - 연관관계 매핑(2)  (0) 2021.11.08
JPA - 연관관계 매핑  (0) 2021.10.26
JPA - 기본 개념과 영속성  (0) 2021.10.18