【问题标题】:unable to create 2 tables with same mapping in hibernate due to possible table name collision由于可能的表名冲突,无法在休眠中创建 2 个具有相同映射的表
【发布时间】:2013-12-30 11:46:19
【问题描述】:

我是 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 个具有相同字段但用于实体中不同对象的表的解决方案?

【问题讨论】:

    标签: sql hibernate annotations


    【解决方案1】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-11-02
      • 1970-01-01
      • 2013-11-03
      • 1970-01-01
      • 2014-03-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多