由于可能的表名冲突,无法在hibernate中创建具有相同映射的2个表

时间:2013-12-30 11:46:19

标签: sql hibernate annotations

我是hibernate的新手,以及注释如何在数据库中创建表。 我认为想要的是与this question有关,但我不确定

假设有一个类Ticket:

@Entity
public class Ticket {

    @ManyToMany 
    private Set<Person> buyers;

    @ManyToMany
    private List<Person> collectors;

         ...
         ...

}

以下行根据需要创建表ticket_person:

private Set<Person> buyers;

但是下一行,同样是Person类在对象收集器中使用,因此无法再次创建表ticket_person,但是需要同时拥有对象买方和收集器。那么如何解决这个问题呢?有没有什么方法可以覆盖默认表名称ticket_person?或者任何其他解决方案,让我们创建具有相同字段的2个表,但实体中的不同对象?

1 个答案:

答案 0 :(得分:1)

这适用于Jointable注释。从API文档中可以看出,所有属性都是可选的。在这种情况下,只应影响连接表的名称,因此以下就足够了:

@JoinTable(name= "ticket_to_collectors")
@ManyToMany
private List<Person> collectors;