【问题标题】:JPA OneToMany column nameJPA OneToMany 列名
【发布时间】:2018-04-06 20:03:01
【问题描述】:

JPA中建立一对多关系时如何设置外键的列名?

我想把“items_id”的名字改成“item_id”

@OneToMany
private List<Item> items;

我尝试了以下注释但没有成功:

  1. @JoinColumn(name="item_id") // 未创建连接表
  2. @Column(name="item_id") // 无效

【问题讨论】:

标签: jpa rename one-to-many


【解决方案1】:

您想要覆盖连接表的默认值的映射,因此@JoinTable 注释是要使用的注释。您想将 inverseJoinColumn 的名称从 items_id 覆盖为 item_id

    @OneToMany
    @JoinTable(inverseJoinColumns=@JoinColumn(name="item_id"))
    List<Item> items;

@OneToMany@JoinColumn 进行不同的映射,不创建连接表,并在引用的实体表中创建外键(在您的情况下为 Item 表)。

@Column 用于覆盖实体属性的名称,而不是关系的名称。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-01-28
    • 1970-01-01
    • 2019-04-04
    • 2016-11-14
    • 2012-01-16
    • 2019-05-17
    • 1970-01-01
    相关资源
    最近更新 更多