hibernate one to many(many to one)

多对一维护的关系是:多指向一的关系,有了此关系,加载多的时候可以将一加载上来

一对多维护的关系是:一指向多的关系,有了此关系,在加载一的时候可以将多加载上来

而单向一对多关联映射是在一的一端维护关系的

1.实体类:

              one to many:定义多段Set集合,需要实例化HasSet

               many to one:定义一端对象

2.映射文件:

(1)由 Nation来维护关联:

Nation实体类:需要添加一个集合存储拥有的地址。

package com.zking.entity;

import java.util.HashSet;
import java.util.Set;

public class Nation {
private String nid;
private String nname;
private Set Pi = new HashSet();
public Nation() {
super();
}
public Nation(String nid, String nname, Set Pi) {
super();
this.nid = nid;
this.nname = nname;
this.Pi = Pi;
}
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 Pi;
}

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

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

}
实体类:Province

package com.zking.entity;

import java.util.HashSet;
import java.util.Set;

public class Province {
private String pid;
private String pname;
private transient Nation nation;
private Set Ci = new HashSet();

public Province() {
	super(); 
} 

public Province(String pid, String pname, Nation nation) {
	super();
	this.pid = pid;
	this.pname = pname;
	this.nation = nation;
}

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 Set<City> getCi() {
	return Ci;
}

public void setCi(Set<City> ci) {
	Ci = ci;
} 
@Override
public String toString() {
	return "Province [pid=" + pid + ", pname=" + pname + "]";
}

}
实体类:City

package com.zking.entity;

public class City {
private String cid;
private String cname;
private transient Province province;

public City() {
	super(); 
}

public City(String cid, String cname) {
	super();
	this.cid = cid;
	this.cname = cname;

}

public String getCid() {
	return cid;
}

public void setCid(String cid) {
	this.cid = cid;
}

public String getCname() {
	return cname;
}

public void setCname(String cname) {
	this.cname = cname;
}

public Province getProvince() {
	return province;
}

public void setProvince(Province province) {
	this.province = province;
}

@Override
public String toString() {
	return "City [cid=" + cid + ", cname=" + cname + "]";
}

}
映射文件:Nation ,Province, City

<?xml version="1.0"?>
	<set name="sc" table="CITY" lazy="false" inverse="true"
		cascade="all-delete-orphan">
		<key column="pid"></key>
		<one-to-many class="com.zking.entity.City" />
	</set>

</class>
<?xml version="1.0"?> <?xml version="1.0"?>
	<many-to-one name="province" class="com.zking.entity.Province"
		column="pid"></many-to-one>
</class>
hibernate.cfg.xml <?xml version="1.0" encoding="UTF-8"?> com.mysql.jdbc.Driver sasa jdbc:mysql://localhost:3306/t204?characterEncoding=utf-8 root
	<property name="show_sql">true</property>
	<property name="format_sql">true</property>

	<mapping resource="com/zking/entity/Nation.hbm.xml" />
	<mapping resource="com/zking/entity/Province.hbm.xml" />
	<mapping resource="com/zking/entity/City.hbm.xml" />
	
</session-factory>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值