【问题标题】:Hibernate one to many mapping with additional relation table使用附加关系表休眠一对多映射
【发布时间】:2014-03-12 19:18:06
【问题描述】:

我想要两个表,它们具有一对多的关系,由第三个表链接。我该如何处理?我想创建与 tutorial 完全相同的东西,但使用一对多而不是使用 unique="true" 的多对多

【问题讨论】:

  • 只需为第三个表创建一个实体。而不是实体 AB 的 M-M,您需要 1-M A->X 和 1-M B->X。 A B 和 X 都是实体。
  • 你可以在网上找到很多这样的例子......
  • @balaji-reddy 他们都只使用2个没有关系表的表。
  • @gerrytan 不应该是 M-1 B-> X 吗?我希望表 A 与 B 通过 1-M 关系使用映射表 X 与 A 和 B 的外键链接

标签: java hibernate one-to-many


【解决方案1】:

在 Hibernate 中,当您使用 @OneToMany 注释而不声明 @JoinTable 或 @JoinColumn 时,将自动创建第三个表来映射关系,因此只需通过 @OneToMany 切换 @ManyToMany 就不用担心,只要您的关系会遵守注解规则。

但是,您可以尝试一些显式映射,这样您甚至可以控制将由 @OneToMany 注释创建的列名。

试试这样的:

public class TestClass1 {

    @OneToMany
    @JoinTable(name = "ADDITIONAL TABLE NAME", joinColumns = {
        @JoinColumn(name = "TESTCLASS1_ID")}, inverseJoinColumns = {
        @JoinColumn(name = "TESTCLASS2_ID")})
    private List<TestClass2> listTestClass2;
}

祝你好运!

【讨论】:

  • 我想在没有注释的情况下这样做。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-04-07
  • 1970-01-01
  • 2014-09-06
  • 1970-01-01
  • 2023-03-14
相关资源
最近更新 更多