Java 如何覆盖@JoinColumn中为单个列联接生成的默认SQL名称
在我的实体中,我有一个单向的一个对象Java 如何覆盖@JoinColumn中为单个列联接生成的默认SQL名称,java,jpa,Java,Jpa,在我的实体中,我有一个单向的一个对象 @OneToMany(mappedBy="pub", cascade = CascadeType.ALL, orphanRemoval=true) @JoinColumn(name="reference") 此实体和子实体的FK和PK列均为“参考” 当为该联接生成SQL时,它使用默认的objectname+\uPK“pub\u reference”,并忽略我传入的名称 我可以将name=更改为任何名称,但它总是被忽略 即使名称是单列联接,如何重写其默认行为
@OneToMany(mappedBy="pub", cascade = CascadeType.ALL, orphanRemoval=true)
@JoinColumn(name="reference")
此实体和子实体的FK和PK列均为“参考”
当为该联接生成SQL时,它使用默认的objectname+\uPK“pub\u reference”,并忽略我传入的名称
我可以将name=更改为任何名称,但它总是被忽略
即使名称是单列联接,如何重写其默认行为
母实体
@OneToMany(mappedBy="pub", cascade = CascadeType.ALL, orphanRemoval=true)
@JoinColumn(name="bob")
private Collection<PubDisplayText> pubDisplayText;
引用单向一对多映射必须使用联接表。通过指定@OneToMany.mappedBy元素,意味着是双向的一对多。因此,映射从“拥有”映射(由“mappedBy”指定的映射)中获取联接列名。由于此处未指定任何值,因此将使用默认的联接列。单向一对多映射必须使用联接表。通过指定@OneToMany.mappedBy元素,意味着是双向的一对多。因此,映射从“拥有”映射(由“mappedBy”指定的映射)中获取联接列名。由于此处未指定任何连接,因此使用默认的连接列
private Pub pub;
@Id
@XmlTransient
public Pub getPub() {
return pub;
}
public void setPub(Pub pub) {
this.pub = pub;
}