天天看点

Hibernate中的Entity类之间的ManyToOne关联

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;
    }
}