什么是多对多关系呢?
关系数据库中两个表之间的一种关系, 该关系中第一个表中的一个行可以与第二个表中的一个或多个行相关。第二个表中的一个行也可以与第一个表中的一个或多个行相关。
比如在常见的订单管理数据库当中“产品”表和“订单”表之间的关系。单个订单中可以包含多个产品。另一方面,一个产品可能出现在多个订单中。
要表示多对多关系,就妖创建第三个表,称为 联接表,也称( 桥接表、中间表)。它多对多关系分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