Java 为什么我必须使用@JoinColumn而不是@Column
我正在尝试加入两个实体,在那里typDossAmo可以有一个DossMedic列表 但我得到了以下错误: 实体类[class ma.cnss.wstest.TypDossAmo]必须使用@JoinColumn而不是@Column来映射其关系属性[药物]Java 为什么我必须使用@JoinColumn而不是@Column,java,persistence,Java,Persistence,我正在尝试加入两个实体,在那里typDossAmo可以有一个DossMedic列表 但我得到了以下错误: 实体类[class ma.cnss.wstest.TypDossAmo]必须使用@JoinColumn而不是@Column来映射其关系属性[药物] public class TypDossAmo implements Serializable { private static final long serialVersionUID = 1L; @Column(name =
public class TypDossAmo implements Serializable {
private static final long serialVersionUID = 1L;
@Column(name = "ID")
private BigInteger id;
@Id
@Basic(optional = false)
@NotNull
@Size(min = 1, max = 9)
@Column(name = "NUM_DOSS")
private String numDoss;
@Column(name = "p_tab_medic")
@OneToMany(mappedBy="doss")
private List<DossMedic> drugs;........
注释@Column的思想是用于与其他表没有任何关系的公共列,当您使用@JoinColumn时,就是对ORM说两个表有关系,连接它们的方法是使用此列。 在这种情况下,解决方案是通过TypDossAmo中的@JoinColumn更改注释@Column
public class TypDossAmo {
@JoinColumn(name = "p_tab_medic")
@OneToMany(mappedBy="doss")
private List<DossMedic> drugs;
}
公共类typdosamo{
@JoinColumn(name=“p\u tab\u medic”)
@OneToMany(mappedBy=“doss”)
私人名单药物;
}
那么问题到底出在哪里呢?我认为解决方案可能是:公共类typdosamo{……@JoinColumn(name=“p_tab_medic”)@OneToMany(mappedBy=“doss”)私有列表药物;。。。。。。。。
public class TypDossAmo {
@JoinColumn(name = "p_tab_medic")
@OneToMany(mappedBy="doss")
private List<DossMedic> drugs;
}