Hibernate @OneToMany和UNIQUE约束

时间:2012-01-10 14:08:58

标签: hibernate

我正在使用Hibernate存储有关文章引用的信息。我以这种方式注释我的课程,以表达两篇文章之间的关系。

@OneToMany(cascade = CascadeType.ALL, fetch = FetchType.LAZY)
@JoinTable(name = "CITATIONS")
private Set<Article> citingArticles = new HashSet<Article>();

不幸的是,这是在citingArticle上使用UNIQUE约束转换的,这意味着我只能引用一篇文章来引用另一篇文章。

当然这不是我想要的,如何删除UNIQUE约束?

2 个答案:

答案 0 :(得分:7)

如果您有多对多关系,则需要使用@ManyToMany对其进行建模:

@ManyToMany(cascade = CascadeType.ALL, fetch = FetchType.LAZY) 
@JoinTable(name = "CITATIONS") 
private Set<Article> citingArticles = new HashSet<Article>(); 

答案 1 :(得分:0)

我认为,您可以将集合类型从“设置”更改为“列表”,例如:

{1{2{3{4}}}}

因为Set中没有重复的项目