@OneToMany
mappedBy
요소가 지정되지 않은 경우, 기본적으로 annotation은 조인 테이블을 만듭니다.왜 Hibernate는 @OneToMany에 대해 기본적으로 Join Table을 생성합니까?
이 동작의 이유는 무엇입니까? 다음 기관과 예를 들면 다음과 같습니다 User
엔티티에 대한
@Entity
public class User {
// ...
@OneToMany
private List<UserDocument> documents;
// ...
}
@Entity
public class UserDocument {
// ...
@ManyToOne
private User user;
// ...
}
, 왜 단순히 최대 절전 모드하지 않습니다
- 이
UserDocument
개체에 반사를 수행하여UserDocument
입력User
와 필드를 찾을 수 있습니다. @OneToMany
주석에 대해mappedBy
값을 단독으로 추정 하시겠습니까?
기본 동작으로이 작업을 수행하지 않고 조인 테이블을 생성하는 이유는 무엇입니까? 왜 Hibernate (또는 JPA)가 이런 식으로 설계 되었습니까? UserDocument
관계 -
안녕하세요. @OneToMany 주석에 대해 mappedBy의 값을 추론한다는 것은 무엇을 의미합니까? 또한 Hibernate가 엔티티 (id)를 계산한다는 의미에서 디자인을 만드는 것, 즉 join 대 vs "find"/ infer를 생성한다는 의미에서 Hibernate가 "수행 중"이라고 말할 때 명확하지 않습니다. 더 명확하게 편집하십시오. 모든 것을 분명하게 나타 내기에 충분한 단어와 문장을 사용하십시오. 추신 : 대답은 테이블에 대한 추상 작업과 특정 작업에서 구현 된 방법 (조합)을 구별하는 것입니다. 또한 주석 당 문서 매핑 모델을 테이블로 읽어보십시오. – philipxy
왜 JPA SPEC에서 1-N의 기본값으로 지정해야합니까? 왜냐하면 그렇게합니다. JPA 스펙을 읽으십시오. 그것은 "mappedBy"와는 아무런 관련이 없습니다. 이것은 @ JoinColumn이 없기 때문입니다. – DN1
@philipxy 나는 디자인 결정에 대해 이야기하고 있습니다. 왜 Hibernate (또는 오히려 JPA)가 이런 식으로 디자인 되었는가? – Utku