- 객체와 테이블 매핑
- @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
- @Column(name ="", length = 10) - 유니크 조건을 여기다가 걸 수 있지만 이름을 줄 수 없으므로 @Table에 줌
- 기본 키 매핑
- 기본 키 제약 조건: 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 |