Hibernate-ORM:11.Hibernate中的关联查询

 

------------吾亦无他,唯手熟尔,谦卑若愚,好学若饥-------------

 

 

 

 

本篇博客将讲述Hibernate中的关联查询,及其级联(cascade)操作,以及指定哪一方维护关联关系的(inverse)

 

一,讲述目录如下:

  1.单向一对多:(增加一个区县及其它以下的对应街道)

  2.单项一对多:(查询一个区县,以及它下面所有的对应街道)

  3.单项多对一:(查询一个指定的街道,并同时展示出其对应的区县)

  4.双向一对多(多对一):(值得注意:toString()套路不对容易引发错误Error------StackOverflowError)

  5.inverse的使用和详解:(指定哪一方来维护关联关系)

  6.级联删除:(删除主表中的数据,同时将会干掉外键是它的数据,慎用!!!!!!)

  注:其实还想讲一下多对多,但是没有准备,下篇博客会详细总结;

 

二,单向一对多:(增加一个区县及其它以下的对应街道)   1.简介:

    我会在此案例下做好全部准备工作,其他的案例会在此案例上做略改操作

  2.实体类的准备:

    2.1:District区县实体类

 

package cn.dawn.day03.entity; import java.util.ArrayList; import java.util.List; /** * Created by Dawn on 2018/5/30. */ /*区县*/ public class District { private Integer id;//区县id private String name;//区县名称 /*一个区县对应多个街道*/ private List<Street> streets=new ArrayList<Street>(); @Override public String toString() { return "District{" + "id=" + id + ",\'' + ", streets=" + streets + '}'; } public Integer getId() { return id; } public void setId(Integer id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public List<Street> getStreets() { return streets; } public void setStreets(List<Street> streets) { this.streets = streets; } public District() { } public District(Integer id, String name, List<Street> streets) { this.id = id; this.name = name; this.streets = streets; } public District(Integer id, String name) { this.id = id; this.name = name; } }

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wpwxgz.html