Sql 如何使用JPA/Hibernate映射这种关系?

Sql 如何使用JPA/Hibernate映射这种关系?,sql,hibernate,jpa,hibernate-mapping,Sql,Hibernate,Jpa,Hibernate Mapping,我有两个表共享一个公用键。我想要的是,当我为第一个表加载类时,我还将得到一个与第二个表对应的类列表,它们在第二个表中共享密钥 更具体地说:tableA有一个id(id1),它存在于tableB的多个条目中。但是,tableB使用复合键,并同时使用id1和id2作为键 我想要实现的是,当加载tableA的POJO时,我还得到表B的所有条目,其中表A中的id1等于表B中的id1。类似于: public class TableA { private String id1; private Li

我有两个表共享一个公用键。我想要的是,当我为第一个表加载类时,我还将得到一个与第二个表对应的类列表,它们在第二个表中共享密钥

更具体地说:tableA有一个id(id1),它存在于tableB的多个条目中。但是,tableB使用复合键,并同时使用id1和id2作为键

我想要实现的是,当加载tableA的POJO时,我还得到表B的所有条目,其中表A中的id1等于表B中的id1。类似于:

public class TableA {
  private String id1;
  private List<TableB> list; // where id1 in tableA == id1 in tableB
}


table A id column: 
id1

table B composite id: 
id1 // same as for tableA
id2
公共类表a{
私有字符串id1;
私有列表;//其中表A中的id1==表B中的id1
}
表A id列:
id1
表B复合id:
id1//与表A相同
id2

类别B将有一个部分依赖于a的复合标识符。这可以使用
嵌入ID
或通过指定ID类别来映射。使用ID类将如下所示:

实体A

@Entity
public class A {
    @Id
    @Column(name = "id1")
    private Long id1;

    @OneToMany(mappedBy = "a")
    private Set<B> bs;
}
B的ID类

@Entity
@IdClass(Bid.class)
public class B {
    @Id
    @ManyToOne
    @JoinColumn(name = "id1")
    private A a;

    @Id
    @Column(name = "id1")
    private Long id2;
}
public class Bid implements Serializable{
    //must be of same type as id of target entity A
    private Long a;
    private Long id2;

    // **must** implement equals and hash code
}