의문이 생겼다. persist는 영속성 컨텍스트에 올리는 것으로 알고 있는데,
어떻게 id값을 제대로 지정할까? 즉, 테이블에 이미 데이터가 1개 존재한다고 했을 때,
Team team = new Team();
team.setName("TeamA");
em.persist(team);
Member member = new Member();
member.setUsername("member1");
em.persist(member);
System.out.println(team.getId());
여기서 getId 값이 2로 출력되는 것을 알 수 있다.
즉 영속성 컨텍스트에만 올리는 것으로 알고있지만 DB의 값이 한 개 존재한다는 것을 알고있다는 뜻
왜 일까?
생각해보면 영속성 컨텍스트에 값을 올릴 때 pk 값이 필요한데 그 때 제대로된 값을 지정하는게 맞긴한다.
즉 영속성 컨텍스트에 넣기전에 DB에서 확인하고 맞는 pk 값을 지정해서 영속성 컨텍스트에 넣게 된다.
관련된 자료는, https://dundung.tistory.com/220
JPA, EntityManager와 persist 관련 알게 된 사실
JPA 학습을 하다가 의문이 든 내용과 알게 된 사실을 정리하고자 한다. JPA의 EntityManager 객체에서 find 메서드를 호출하던 중 의문이 생겼다.🤔 의문이 생겼던 코드를 살펴보자. (학습 테스트기에
dundung.tistory.com
https://www.inflearn.com/questions/360781
영속성 컨텍스트 및 flush에 대한 궁금증 입니다. - 인프런 | 질문 & 답변
안녕하세요. 강의 잘 보고 있습니다~ 다름이아니라 개념이 좀 안잡히는 부분이 있어서요.. em.persist(entity)를 호출하면 entity를 영속성 컨텍스트에 저장한다고 알고 있습니다. 1. 그럼 persist를 호
www.inflearn.com
여기에서 참고가 됐다.
[ JPA ] @MappedSuperclass (0) | 2022.01.16 |
---|---|
[ JPA ] 상속관계 매핑 (0) | 2022.01.15 |
[ JPA ] 양방향 연관관계(2) - 주의할 점 (0) | 2022.01.08 |
[ JPA ] 양방향 연관관계(1) - mappedBy (0) | 2022.01.07 |
[ JPA ] 단방향 연관관계 (0) | 2021.12.30 |