2017-09-15 3 views
0

에 매핑을 최대 절전 모드로하지, 여기에 UML입니다 BookAttachment 클래스의 경우 :다형성을 사용하거나 내가 설명을 쉽게하기 위해 심플한 디자인을 만든 단일 테이블

@Entity 
@DiscriminatorValue("BookAttachment") 
public class BookAttachment extends Attachment{ 

    @ManyToOne 
    @JoinColumn(name="Book_ID") 
    private Book book; 
    ... 
    } 

내 질문 h 예, Book 클래스에서 양방향 관계를 어떻게 수행 할 수 있습니까? 이런 식으로해야합니까? 나는이 책과 관련이없는 첨부 클래스로 mappedBy을 사용하는 방법을 아직 모르는 :

public class Book{ 

    @OneToMany(mappedBy = "book", cascade = CascadeType.PERSIST) 
    private List<BookAttachment> bookAttachments; 
... 
} 

또는 다음 (이 좋은 디자인이 있다면 그것은 다형성과 확실하지 않다).

public class Book{ 

    @oneToMany 
    private List<Attachment> bookAttachments; 
... 
} 

이 예제에서는 다형성을 사용하지 않습니다. 책 클래스는 userAttachment와 관련되어서는 안됩니다. (이 예제는 디자인이 어떻게 될지 명확하게 이해하는 것입니다. 실제 사례가 아니므로 다형성을 사용하지 않는지 이해해야합니다.이 경우 좋고 나쁜 디자인입니다.)

답변

0

내 의견으로는 더 올바른 방법이 ... 당신이 도 두 옵션 모두동시에에 예약 클래스에서 구현 가질 수 없습니다, 적절한 하나의 요구 사항에 따라 달라집니다.

하나를 선택해야한다면 좀 더 일반적이고 모듈 식이므로 두 번째 것을 선택해야합니다.

하지만 확실히 두 번째 해결 방법에서 속성 이름이 잘못되었습니다! bookAttachments 대신 첨부 파일이어야합니다.

+0

두 번째 해결 방법에서 올바른 매핑은 무엇입니까? (첨부 파일과 책 사이에는 관계가 없으므로 Hibernate가이 테이블들을 어떻게 결합하는지 확신 할 수 없다) –