인프런 커뮤니티 질문&답변

김선도님의 프로필 이미지
김선도

작성한 질문수

자바 ORM 표준 JPA 프로그래밍 - 기본편

mappedBy된 객체가 연관관계의 주인 객체의 데이터 수정 시도

작성

·

112

0

            Member member = new Member();
            member.setUsername("Member_A");
            em.persist(member);

            Team team = new Team();
            team.setName("Team_A");
            em.persist(team);

            member.setTeam(team);

            em.persist(member);

            em.flush();
            em.clear();

            Team findTeam = em.find(Team.class, team.getId());

            findTeam.getMembers().get(0).setUsername("Member_B");

            findTeam.setName("Team_B");

            em.persist(findTeam);

            tx.commit();

안녕하세요 강의 잘 듣고 있습니다.

Member와 Team에서 연관관계의 주인은 Member라고 설정했습니다.

Member와 Team 엔티티를 하나씩 영속화하고

flush한 다음, Team을 find해서 Member의 이름을 바꿔보았습니다. 실제로 잘 동작합니다.

Team이 Member의 fk관련 데이터를 바꾸는게 불가능한 것이고, 다른 컬럼을 수정하는것은 가능한건가요?

답변 1

0

김영한님의 프로필 이미지
김영한
지식공유자

안녕하세요. 선도님

연관관계의 주인이라는 개념은 FK를 업데이트 하는 것과 관련이 있습니다.

Member, Team 엔티티 자체의 값이 변경되는 것은 이 부분과 관계는 없고 JPA에서 엔티티의 데이터를 변경하면 자기 자신의 데이터가 변경되는 것입니다.

감사합니다.

김선도님의 프로필 이미지
김선도

작성한 질문수

질문하기