Hibernate中的Entity类之间的关联是建立在数据库表结构的设计上的。
@ManyToOne关联是Hibernate中最常见、也是最容易理解的关联。因为,@ManyToOne关联与数据库表结构的外键关联非常类似,往往位于在子Entity类中,表示了子Entity类与父Entity类之间的关系。
例如,父Entity类如下:
@Entity(name = "Person")
public static class Person {
@Id
@GeneratedValue
private Long id;
public Person() {
}
}
子Entity类如下关联父Entity类:
@Entity(name = "Phone")
public static class Phone {
@Id
@GeneratedValue
private Long id;
private String number;
@ManyToOne
@JoinColumn(name = "person_id",
foreignKey = @ForeignKey(name = "PERSON_ID_FK")
)
private Person person;
public Phone() {
}
public Phone(String number) {
this.number = number;
}
public Long getId() {
return id;
}
public String getNumber() {
return number;
}
public Person getPerson() {
return person;
}
public void setPerson(Person person) {
this.person = person;
}
}