Hibernate有很多值得学习的地方,这里我们主要介绍Hibernate处理级联操作,包括介绍Hibernate映射关系等方面。
Hibernate处理级联操作
Java 持久性映射过程中最重要和最复杂的一环就是确定如何映射表间的关系。像其他产品一样, Hibernate 在该领域中提供了高度的灵活性,但却是以复杂度的增加为代价。我们将通过研究几个常见案例来了解如何使用注释来处理这一问题。
其中一种最常用的关系就是多对一的关系。假定在以上示例中每个 ModelPlane 通过多对一的关系(也就是说,每个飞机模型只与一种飞机类型建立联系,尽管指定的飞机类型可以与七种飞机模型建立联系)来与 PlaneType 建立联系。可如下进行映射:
- @ManyToOne( cascade = {CascadeType.PERSIST, CascadeType.MERGE} )
- public PlaneType getPlaneType() {
- return planeType;
- }
CascadeType 值表明Hibernate处理级联操作。
另一种常用的关系与上述关系相反:一对多再对一关系,也称为集合。在老式的 Hibernate 版本中进行映射或使用注释时,集合令人头疼,这里我们将简要加以探讨,以使您了解如何处理集合,例如,在以上示例中每个 PlaneType 对象都可能会包含一个 ModelPlanes 集合。可映射如下:
- @OneToMany(mappedBy="planeType",cascade=CascadeType.ALL,fetch=FetchType.EAGER)
- @OrderBy("name")
- public List<ModelPlane> getModelPlanes() {
- return modelPlanes;
- }
【编辑推荐】