2014-01-17 85 views
0

如何在hibernate中将一个属性映射到2个属性?
例子:如何在Hibernate中将一个属性映射到多个属性?

@Entity 
@Table(name = "Author") 
public class ModelAuthor extends Model { 

    @ManyToMany(mappedBy = "authorList", 
       fetch = FetchType.LAZY) 
    private Set<ModelConceptualBook> conceptualBookList; 
} 


@Entity 
@Table(name = "ConceptualBook") 
public class ModelConceptualBook extends Model { 

    @ManyToMany(fetch = FetchType.LAZY) 
    @JoinTable(name = "ConceptualBook_Author", 
       joinColumns = {@JoinColumn(name = "conceptualBookId")}, 
       inverseJoinColumns = {@JoinColumn(name = "authorId")}) 
    private Set<ModelAuthor> authorList; 

    private Set<ModelAuthor> translatorList; 
} 

现在我想有anaother表ConceptualBook_Author映射translatorListModelConceptualBookModelAuthorauthorListconceptualBookList
如何实现此功能?
非常感谢您的帮助;)

回答

0

通过简单地使用其他表 - 例如ConceptualBook_Translator

@ManyToMany(fetch = FetchType.LAZY) 
@JoinTable(name = "ConceptualBook_Translator", 
      joinColumns = {@JoinColumn(name = "conceptualBookId")}, 
      inverseJoinColumns = {@JoinColumn(name = "authorId")}) 
private Set<ModelAuthor> translatorList; 

而在另一边的关系如下:

@ManyToMany(mappedBy = "translatorList", 
       fetch = FetchType.LAZY) 
    private Set<ModelConceptualBook> booksTranslated; 
+0

非常感谢您的帮助,但我能写的“@ManyToMany(的mappedBy =‘而不是authorList’,取= FetchType .LAZY)“为”ModelAuthor“类中的”conceptualBookList“? – user3205721

+0

已添加到答复。它不是,而是作为现有的补充。这些是相同类型之间的两种不同关系,角色:翻译者和角色:作者。如果需要将两个集合合并为一个并返回的附加方法当然可以添加。 –

相关问题