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

时间:2018-06-21 11:11:42

标签: hibernate jpa mapping one-to-one

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

Example:

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


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

不是,我想使用Hibernate映射使用Class A的对象来获取Class B的对象。

请帮助我解决这个问题。

1 个答案:

答案 0 :(得分:0)

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

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表中的外键列的名称。因为是一对一关系,所以您需要确保每个单个A实体只能与一个B实体关联。否则,您应该使用一对多关系并返回B的集合或列表。