为什么我必须使用@joincolumn而不是@column

9rbhqvlz  于 2021-06-29  发布在  Java
关注(0)|答案(1)|浏览(392)

我试图连接两个实体,其中typdossamo可以有一个dossmedic列表,但我得到以下错误:实体类[class ma.cnss.wstest.typdossamo]必须使用@joincolumn而不是@column来Map其关系属性[druges]。

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;........
public class DossMedic implements Serializable {

    private static final long serialVersionUID = 1L;
    @EmbeddedId
    protected DossMedicPK dossMedicPK;
    @Column(name = "ID")
    private BigInteger id;
    @Column(name = "NOMBRE")
    private BigInteger nombre;

    @ManyToOne(fetch=FetchType.LAZY)
    @JoinColumn(name="NUM_DOSS")
    private TypDossAmo doss;
kd3sttzy

kd3sttzy1#

注解@column的思想是针对与其他表没有任何关系的公共列,当您使用@joincolumn时,就是对orm说两个表有一个关系,连接它们的方法就是使用这个列。在本例中,解决方案是在typdossamo中通过@joincolumn更改注解@column

public class TypDossAmo {

    @JoinColumn(name = "p_tab_medic")
    @OneToMany(mappedBy="doss")
    private List<DossMedic> drugs;
}

相关问题