复合外键和主键的Hibernate / JPA映射

时间:2020-10-06 07:46:35

标签: hibernate jpa

我有3个实体,房屋,会员,宠物。 映射类为:

public class House {
    @EmbeddedId
    private HouseId houseId;
    // other fields
}

@Embeddable
public class HouseId {
    @Column(name = "district")
    private String district;
    
    @Column(name = "address_number")
    private String addressNumber;
}

public class Member {
    @MemberId
    private MemberId id;
    
    @OneToMany(mappedBy = "member")
    private List<Pet> pets;
    //other fields
}

@Embeddable
public class MemberId {
    private HouseId houseId;
    @Column(name = "member_id")
    private String memberId; 
}

public class Pet {
    @EmbeddedId
    private PetId id;
    
    @ManyToOne
    //put necessary annotations here
    private Member member;
}

@Embeddable
public class PetId {
    private HouseId houseId;
    @Column(name = "pet_id")
    private String petId;
}

总结:

  • 宠物具有主键(区,address_number,pet_id)。
  • 成员具有主键(区,address_number,member_id)。
  • 宠物具有成员的外键(区,address_number,member_id)。 因此,如何在Pet类中放置必要的注释,以显示Pet与Member之间的关系。

0 个答案:

没有答案