我应该使用直接FK字段或实体对象?

时间:2014-04-24 17:02:13

标签: java hibernate jpa

我是Hibernate的新手,我不知道哪种方法最好:

@Entity
@Table(name = "alumno")
public class Alumno implements Serializable {

    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    @Column(name = "id")
    private Integer id;

    @Column(name = "salon_id")
    private Integer salonId;

}

其中salonId字段映射到数据库字段,该字段是引用沙龙表id或此的fk:

@Entity
@Table(name = "alumno")
public class Alumno implements Serializable {

    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    @Column(name = "id")
    private Integer id;

    private Salon salon;

}

一个与另一个的优势是什么?

1 个答案:

答案 0 :(得分:1)

你当然应该使用第二个。实体和ORM的重点是能够从数据库加载对象图并在对象图中导航:

Alumno alumno = em.find(Alumno.class, id);
Salon salon = alumno.getSalon();

在这种情况下,您需要在沙龙领域注明@ManyToOne@OneToOne(取决于协会的实际基数)。