hibernate ---- 多对多关系(一)

本文介绍了关系数据库中的多对多关系概念,通过订单和产品表的例子进行解释。在Hibernate中,通过创建桥接表来实现多对多关系。文章提供两个示例,包括自关联查询(树形菜单表)和多对多级联查询(书籍与类别表),详细阐述了配置及查询方法,强调了Hibernate自动处理桥表和关联对象的特点。
摘要由CSDN通过智能技术生成

什么是多对多关系呢?

关系数据库中两个表之间的一种关系, 该关系中第一个表中的一个行可以与第二个表中的一个或多个行相关。第二个表中的一个行也可以与第一个表中的一个或多个行相关。

比如在常见的订单管理数据库当中“产品”表和“订单”表之间的关系。单个订单中可以包含多个产品。另一方面,一个产品可能出现在多个订单中。

要表示多对多关系,就妖创建第三个表,称为 联接表,也称( 桥接表、中间表)。它多对多关系分Wie两个一对多关系。将连个主键都放在第三个表中,因此,第三个表记录关系的每个匹配项或实例。

不多说,我们实例来战:嘻嘻嘻

Example1:自关联查询  树形菜单表

TreeNode.jsp ,实现set/get方法

当前节点对父节点   多对一
	父节点对子节点  一对多
	 */
	private Integer treeNodeId;
	private String treeNodeName;
	private Integer treeNodeType;
	private Integer position;
	private String url;
	
//	private Set<TreeNode> children = new HashSet<TreeNode>();//一对多
	private List<TreeNode> children = new ArrayList<TreeNode>();//一对多,用List是为了可以排序
	private TreeNode parent;//外键 多对多
	private Integer IntiChildren = 0;
	
	public Integer getTreeNodeId() {
		return treeNodeId;
	}
	public void setTreeNodeId(Integer treeNodeId) {
		this.treeNodeId = treeNodeId;
	}

写TreeNode.hbm.xml

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-mapping PUBLIC 
    "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
    "http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">
<hibernate-mapping>
	<class table="t_hibernate_sys_tree_node" name="com.zking.five.ent
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值