具有复合主键且也是同一表外键的JPA实体

具有复合主键且也是同一表外键的JPA实体,jpa,foreign-keys,composite-key,Jpa,Foreign Keys,Composite Key,我有两个表A和B。表A中有两列col1和col2(这两列都是主键,即与col1和col2组合)。表B中有一列,表A中的两列都指向该列,即col1和col2是与表B中的列相关的外键 如何实现表A的JPA实体 谢谢您可以通过以下代码实现这一点: @Embeddable public class AID { public int xID; public int yId; } @Entity public class A { @EmbeddedId public AID

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

如何实现表A的JPA实体


谢谢

您可以通过以下代码实现这一点:

@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;
}
@可嵌入
公共班级资助{
公共int xID;
公共信息产业;
}
@实体
公共A类{
@嵌入ID
公共援助id;
@OneToMany(mappedBy=“A”)
公共收藏b;
}
@实体
公开课{
@身份证
@生成值
公共长id;
@MapsId(“援助”)
@连接柱({
@JoinColumn(name=“xID”,referencedColumnName=“xID”),
@JoinColumn(name=“yId”,referencedColumnName=“yId”)
})
@许多酮
公共A;
}