JPA OneToMany 列名

nag*_*hun 3 jpa rename one-to-many

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

我想将“items_id”的名称更改为“item_id”

@OneToMany
private List<Item> items;
Run Code Online (Sandbox Code Playgroud)

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

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

Dav*_* SN 6

您想覆盖连接表的默认值的映射,因此@JoinTable要使用注释。要覆盖从inverseJoinColumn的名字items_iditem_id

    @OneToMany
    @JoinTable(inverseJoinColumns=@JoinColumn(name="item_id"))
    List<Item> items;
Run Code Online (Sandbox Code Playgroud)

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

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