表与表之间的关系
一对一 (使用一张表即可达到效果)
使用一张表即可达到效果
一对多
客户和联系人 ---> 一对多关系 (一个客户有多个联系人)
- 客户 : 与公司有业务往来,百度,新浪,360
- 联系人 :公司里的员工
创建实体类
配置一对多映射
inverse属性
(1) 因为Hibernate中双向维护外键,因此级联操作时会重复操作外键,影响效率
(2) 解决方式:让其中一方不维护外键(让“一”的一方放弃维护外键)
(3)具体实现:
多对多
多对多添加:
多对多删除(一般不进行这样的操作,可通过修改对三张表来维护关系)
维护第三张表
Hibernate 多种查询方式
对象导航查询
oid 查询
hql 查询
投影查询:(查询部分字段的查询成为投影查询)
聚集函数查询
QBC 查询
内链接查询:查询出两张表关联的数据,未关联的数据无法查出
左外链接(显示左边表的全部数据,右边表的关联数据)
右外链接(显示右边表的全部数据,左边表的关联数据)
hql 多表查询
查询策略
延迟查询分类两类:
类级别延迟: 根据id查询返回实体对象,调用load方法不会马上发送语句
关联级别延迟 : 查询关联数据时进行延迟(Hibernate 默认已做延迟处理)