【问题标题】:Create relation between tables in JPA在 JPA 中创建表之间的关系
【发布时间】:2019-01-03 22:31:14
【问题描述】:

我有主桌商户和副桌终端:

商家表:

@Entity
@Table
public class Merchants {

    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    @Column(name = "id", updatable = false, nullable = false)
    private int id;

    @Column
    private String name;

    @Column
    private String login;
}

终端表:

@Entity
@Table
public class Terminals {

    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    @Column(name = "id", updatable = false, nullable = false)
    private int id;

    @Column
    private int merchant_id;

    @Column
    private String mode;
}

我想将merchant_id 设置到终端表中。我想多对多将是适当的关系。如何创建它?

【问题讨论】:

  • 当您在 JPA 中映射实体关系时,您可以通过 entities 进行映射。您不直接映射外键列。您可以找到多个示例here on SO
  • @JohnBollinger 你能粘贴官方答案以便我投票吗?
  • 网上那么多JPA文档,有什么看不懂的?

标签: java jpa jpa-2.0


【解决方案1】:

如果你有一个连接表:

关于商家类:

 @ManyToMany
 @JoinTable(name="MER_TER", joinColumns=@JoinColumn(name="MERCH_ID", referencedColumnName="id"),
  inverseJoinColumns=@JoinColumn(name="TERM_ID", referencedColumnName="id"))
  private List<Terminals> terminalsList;

在终端类上:

@ManyToMany(mappedBy="terminalsList")
private List<Merchants> merchantsList;

参考页:link

如果您没有 Join Table,请尝试查看此处:https://stackoverflow.com/a/25018992

【讨论】:

  • 我得到 (conn=105) 表 'production.mer_ter' 不存在
  • 我已经更新了答案。抱歉,现在我来自智能手机,无法准确编写代码。
猜你喜欢
  • 2022-01-23
  • 1970-01-01
  • 2012-04-05
  • 2013-01-14
  • 2021-09-02
  • 2013-11-19
  • 2021-12-25
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多