关联关系

【类关系】关联关系

做~自己de王妃 提交于 2019-11-29 11:20:12
概念 关联关系的代码表现形式为一个类做为另一个类的属性类型存在。 即“有”的关系:”has-a”。 关联关系分为单向关联和双向关联 单向关联: A类关联B类。 双向关联: A类关联B类,B类关联A类; 来源: https://blog.csdn.net/hutuyaoniexi/article/details/100595031

Hibernate关联关系(多对多)

怎甘沉沦 提交于 2019-11-29 04:20:23
Hibernate关联关系(多对多) 一. 自关联查询 自关联查询就是自己充当多方 同时也充当一方 即多和一都在同一张表中 一般这样的表其实可以看做是一个树形结构 在数据库表中有一个外键 该外键表示当前数据的父节点 案例: 一对多的自关联 数据库表如下: 实体类TreeNode.java package com.xwt.four.entity; import java.util.HashSet; import java.util.Set; public class TreeNode { private Integer nodeId; private String nodeName; private Integer treeNodeType; private Integer position; private String url; private TreeNode parent; private Set<TreeNode> children = new HashSet<TreeNode>(); private Integer initChildren = 0; public Integer getNodeId() { return nodeId; } public void setNodeId(Integer nodeId) { this.nodeId = nodeId; }

谈谈类之间的关联关系与依赖关系

时光怂恿深爱的人放手 提交于 2019-11-29 03:11:39
对于很多刚刚接触UML的童鞋,可能会对类之间的关联与依赖关系不太理解,今天小菜就浅薄的讲一下。 这块的确是有点乱,不过小菜突然找到了一个比较好的切入点,拿出来分享一下。 接触过设计模式的读者,会经常看到这样的场景:在实例化A类的时候,需要B类作为构造方法的参数,这说明A类需要持有一个B类的引用。比如代理模式、装饰模式等,都会这样做。例如Java中的IO流采用的就是装饰模式,所以我们会经常看到这样的语句:new BufferInputStream(new FileInputStream("c:\\1.db")); 这种持有引用,就是简单的关联关系。在代码中表现为:在A类中有一个 成员变量 ,变量的类型是B类,A类中持有了B类的引用,就说明A类和B类发生了关联关系。 用UML图表示如下: 稍加说明,由于是A类持有B类的引用,因此关联是从A类中发出的(由A类引起),因此箭头要从A类指向B类。 通常情况下,这种简单的单向关联就够用了,但是关联关系主要还是应用在数据库设计中。 在数据库设计中,无论是一对一、一对多、多对多,都不是单向的。 从表的角度分析,它们均可以从任意一端确定另一端。就拿一对多来说,有了one端的主键,可以根据many端表的外键查出many端数据;有了many端外键,可以根据one端表的主键查出one端数据。 从实体类的角度分析,同样可以从任意一端确定另一端

hibernate关联关系(多对多)

眉间皱痕 提交于 2019-11-26 10:29:30
1. 数据库的多对多 1.1 数据库中不能直接映射多对多 处理:创建一个桥接表(中间表),将一个多对多关系转换成两个一对多 注1:数据库多表联接查询 永远就是二个表的联接查询 A B C D t1 C t2 D t3 注2:交叉连接 注3:外连接:left(左)/right(右)/full(左右) 主从表:连接条件不成立时,主表记录永远保留,与null匹配 A B AB select * from A,B,AB WHERE A.aID=AB.aID and b.bid = AB.bid where 在hibernate中,你只管查询当前表对象即可, hibernate会自动关联桥表以及关联表查询出关联对象 Book Category Book_category select * from Book b,Book_category bc,category where b.bid = bc.bid and bc.cid = c.cid and bid = 2 2. hibernate的多对多 2.1 hibernate可以直接映射多对多关联关系(看作两个一对多) 3. 多对多关系注意事项 3.1 一定要定义一个主控方 3.2 多对多删除 3.2.1 主控方直接删除 3.2.2 被控方先通过主控方解除多对多关系,再删除被控方 3.2.3 禁用级联删除 3.3 关联关系编辑