具有复合主对象的JPA实体,它也是同一表的外键

时间:2018-10-18 15:53:18

标签: jpa foreign-keys composite-key

我有两个表A和B。表A中有两列col1和col2(这两列都是主键,即与col1和col2组成的复合键)。表B中有一列,表A中的两列都指向该列,即col1和col2是与表B中的列相关的外键。

如何为表A实现JPA实体?

谢谢

1 个答案:

答案 0 :(得分:1)

您可以通过以下代码来实现:

@Embeddable
public class AID {
    public int xID;
    public int yId;
}

@Entity
public class A {
    @EmbeddedId
    public AID id;

    @OneToMany(mappedBy="A")
    public Collection<B> b;
}


@Entity
public class Meeting {
    @ID
    @GeneratedValue
    public Long id;

    @MapsId("aID")
    @JoinColumns({
        @JoinColumn(name="xID", referencedColumnName="xID"),
        @JoinColumn(name="yId", referencedColumnName="yId")
    })
    @ManyToOne
    public A a;
}