영한님 연관관계의 주인 개념과 관련해서 질문이 있습니다!
276
작성한 질문수 5
영한님 먼저 좋은 강의 제공해주셔서 정말 감사드린단 말씀 드리고 싶습니다. 이 강의는 1강이지만 이후 강의를 보면서도 계속 돌아오는 곳이네요. 제가 여쭤보고 싶은 것은 다음과 같습니다.
객체와 데이터베이스 테이블간의 패러다임 차이를 설명하시면서 말씀하신 ‘룰’이라는 것(연관관계의 주인과 mappedby)이 에러를 수반하는 강제된 제약인 줄 알았는데 양방향 업데이트가 가능한 엔티티 설계가 기술적으로 가능하다는 것을 알게 된 후 여러 궁금증이 생겼습니다. 베스트 프랙티스는 아니겠지만요
// Team
@OneToMany
@JoinColumn(name = "team_id")
private List<Member> members = new ArrayList<>();
// Member
@ManyToOne
private Team team;
// Test
...
teamA.getMembers().add(member1);
member2.setTeam(teamB);제 질문의 주 요지는 JPA 양방향 연관관계에서 관계의 주인이란 개념은 JPA 설계 사상과(객체지향쪽으로 패러다임 일치를 지향) 상태를 가진 ORM인 JPA에서 양쪽에 값을 채우고 반영될 수 있을 때의 혼란과 사이드 이펙트를 고려한, 기술적이라기보단 개발자(혹은 JPA)의 자의적인 제한일까 하는 것입니다.
타언어에서 다른 ORM을 쓰다가 넘어왔는데 머리를 비우기가 참 어렵네요😂
답변 1
2
안녕하세요. Knorway님, 공식 서포터즈 David입니다.
양방향 연관관계에서 DB와 객체의 패러다임 불일치로 인해 발생하는 문제를 JPA의 방법(기술)으로 해소했다고 생각합니다. 다만, 말씀하신대로 연관관계의 주인에서만 추가, 수정이 가능한 부분은 자의적으로 제한했다고도 볼 수 있을 것 같습니다.
ps. 어떤 언어의 어떤 ORM 기술을 사용하셨나요?
감사합니다.
0
Node.js의 Prisma 및 Golang의 SQLBoiler를 사용했습니다. 둘다 데이터베이스 테이블에서 type과 struct를 생성해주는 기능이 마음에 들어서 사용했으니 완전 반대죠😂. 답변 감사합니다!
벌크연산에서 member.getAge 호출 시 영속성 컨텍스트에서 데이터를 가져오는건가요?
0
33
2
inheritance startegy 선택시 고려사항
0
24
1
Entity 동등성 비교
0
24
1
실무 조언 관련 질문입니다.
0
48
1
H2데이터베이스 파일 생성
0
59
2
서브쿼리 강의에서 ALL 예시 관련 질문드립니다.
0
57
2
수정또는 삭제시 영속성 엔티티에 값이 무조건 있어야 하나요?
0
58
1
JPQL 메소드와 락
0
56
1
Delivery @OneToOne
0
62
1
17강 4~5분대 테이블 값 조회가 안됩니다.
0
98
2
UnsupportedOperationException 발생
0
89
3
H2 Database 연결이 안됩니다.
0
98
2
연관관계 매핑 질문드립니다.
0
88
2
h2데이터베이스 실행오류
0
110
2
persistence.xml
0
112
2
양방향 연관관계에서 연관관계의 주인(mappedBy)을 왜 꼭 정해야 하나요?
0
83
1
영속성 컨텍스트
0
70
1
JPA 프록시
0
100
1
Native Query와 MyBatis
0
73
1
영속성 컨텍스트는 어떤 메모리에 저장되는건가요?
0
93
1
임베디드 타입 예시 코드 관련 질문
0
121
3
명시적 조인에서 별칭을 주면 왜 객체에 접근할 수 있나요
0
96
3
인텔리제이 패키지 커서 단축키 질문
0
109
2
혹시 현재는 ID 데이터 타입이 String이면 안되나요?
0
149
1





