Hibernate的关系映射——Ont-To-Many(一对多、多对一)

本文通过国家、省份和城市的例子,详细解释了Hibernate中一对多和多对一的关系映射。创建了Nation、Province、City三个实体类,并配置了相应的映射文件,实现级联增加和删除操作。示例展示了如何定义多端Set集合,以及一端的对象映射。
摘要由CSDN通过智能技术生成

使用一个例子来表明一对多和多对一的关系(国家、省份和城市之间的关系)

一个国家有多个省份(一对多),多个省份属于一个国家(多对一)

一个省份有多个城市(一对多),多个城市属于一个省份(多对一)

首先,创建三个实体类分别是:Nation(国家),Province(省份),City(城市)

Ont-To-Many:定义多端Set集合,需要实例化HashSet

Many-To-Ont:定义一端对象

Nation(国家)实体类:

public class Nation {

	private String nid;
	private String nname;

	private Set<Province> sp = new HashSet<>();

	public Nation() {
		super();
		// TODO Auto-generated constructor stub
	}

	public Nation(String nid, String nname, Set<Province> sp) {
		super();
		this.nid = nid;
		this.nname = nname;
		this.sp = sp;
	}

	public String getNid() {
		return nid;
	}

	public void setNid(String nid) {
		this.nid = nid;
	}

	public String getNname() {
		return nname;
	}

	public void setNname(String nname) {
		this.nname = nname;
	}

	public Set<Province> getSp() {
		return sp;
	}

	public void setSp(Set<Province> sp) {
		this.sp = sp;
	}

	@Override
	public String toString() {
		return "Nation [nid=" + nid + ", nname=" + nname + "]";
	}

Province(省份)实体类:

public class Province {

	private String pid;
	private String pname;
	private Nation nation;

	private Set<City> sc = new HashSet<>();

	public Province() {
		super();
		// TODO Auto-generated constructor stub
	}

	public Province(String pid, String pname, Nation nation, Set<City> sc) {
		super();
		this.pid = pid;
		this.pname = pname;
		this.nation = nation;
		this.sc = sc;
	}

	public String getPid() {
		return pid;
	}

	public void setPid(String pid) {
		this.pid = pid;
	}

	public String getPname() {
		return pname;
	}

	public void setPname(String pname) {
		this.pname = pname;
	}

	public Nation getNation() {
		return nation;
	}

	public void setNation(Nation nation) {
		this.nation = nation;
	}

	public S
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值