일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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
- KAKAOLOGINAPI
- http
- 자바ORM표준프로그래밍
- HTTPMESSAGE
- JPA
- 김영한JPA
- SpringBoot
- Transaction not successfully started
- 네이버 연결된 서비스
- RFC723x
- Git
- fixedDelay
- org.apache.ibatis.binding.BindingException
- gitreset
- 캐쉬가능
- 무상태프로토콜
- Invalid bound statement (not found)
- anyMatch
- 매핑정보가없는필드
- 데이터베이스 방언
- DB방언
- 네이버로그인API
- ERROR TYPE : org.apache.ibatis.binding.BindingException
- HTTP3
- @Entity
- @Table
- 멱등활용
- hibernate.dialect
- gitrevert
- initialDelay
Archives
- Today
- Total
twocowsong
연관관계 수정 본문
이번에는 연관관계를 어떻게 수정하는지 확인해보겠습니다.
팀1 소속이던 회원을 새로운 팀2에 소속하도록 수정하겠습니다.
public static void updateRelation(EntityManager em) {
// 새로운 팀2 - INSERT
Team team2 = new Team("team2", "팀2");
em.persist(team2);
// 회원1에 새로운 팀2를 설정
Member member1 = em.find(Member.class, "member1");
member1.setTeam(team2);
}
실행되는 수정 SQL은 아래와 같습니다.
INSERT INTO TEAM(TEAM_ID, NAME) VALUES ('team2', '팀2');
UPDATE MEMBER
SET TEAM_ID = 'team2'
WHERE MEMBER_ID = 'member1'
em.update()메소드는 존재하지않습니다.
단순히 불러온 엔티티의 값만 변경해두면 트랜잭션을 커밋할 때 플러시가 일어나면 변경감지 기능이 작동합니다.
(영속성 컨텍스트에서 관리하기때문입니다. 스냅샵으로 저장해둔 엔티티랑 비교 후 변경을 감지합니다.)
그리고 변경사항을 DB에 자동으로 반영합니다.
이것은 연관관계를 수정할 때도 같은데 참조하는 대상만 변경하면 나머지는 JPA가 자동으로 처리합니다.
'IT > JPA' 카테고리의 다른 글
연관된 엔티티 삭제 (0) | 2022.06.01 |
---|---|
연관관계 제거 (0) | 2022.06.01 |
연관관계 조회 (0) | 2022.05.31 |
연관관계 사용 (0) | 2022.05.29 |
@ManyToOne (0) | 2022.05.28 |