如何在 Hibernate 中使用主键 class 对象获取外键 class 对象

How to get foreign key class object using primary key class object in Hibernate

我需要在 Hibernate 中使用主键 class 对象获取外键 class 对象。

Example:

Class A {
 Id A_id; //primary key
    String name;
}
Class B {


  Id B_id; //primary key
    Id A_id; //Foreign key
    String name; 
}

Noe 我想使用 Class A 的对象使用 Hibernate 映射获取 Class B 的对象。

请帮我解决这个问题。

您应该使用休眠关系注释:

Class A {
    @Id
    Id A_id; //primary key

    String name;
}
Class B {
    @Id
    Id B_id; //primary key

    @ManyToOne
    @JoinColumn(name="a_id", nullable=false)
    A a; //Foreign key

    String name; 
}

备注:

  • 我假设您的关系是多对一的,如果不是,您应该使用另一个注释(请参阅 hibernate/jpa 文档中的 @OneToOne 和 @OneToMany)
  • 记得正确注释其余代码(例如,类 中的@Entity 和@Table 注释)
  • 你的 ID 应该有正确的类型(在大多数情况下它很长)

编辑:

Class A {
    @Id
    Id A_id; //primary key

    String name;

    @OneToOne(mappedBy="a_id")
    B b;

}

其中 "a_id" 是 B table 中外键列的名称。因为它是一对一的关系,所以您需要确保每个 A 实体只能与一个 B 实体相关联。否则,您应该使用一对多关系和 return 集合或 B 的列表。