Hibernate一枚“全自动”的ORM框架;

用IDE工具集成Hibernate会自动生成:

以.hbm.xml为后缀结尾的配置文件+ POJO类 + Dao类

主键查询:

Session.load(class , id): 失败返回异常

Session.get(class , id): 失败返回null

注:class-运行时类    id-主键

区别:

load()方法可返回实体的代理类实例,而get方法永远直接返回实体类。

load()默认为懒加载,而get不管怎样设置都是立即加载;

级联的设定: cascade

当通过一个表去操作另一个表时,就需要进行所谓级联的设定,即指定cascade属性的取值

Cascade 属性取值范围:

  none:在保存、删除修改对象的时候,不考虑其附属物的操作

  save-update:在保存、更新当前对象时,级联保存、更新附属物。

  delete:在删除当前对象时,级联删除附属物。

  all: 包含save-update和delete的操作

举个栗子:

假如customer表和Orders表存在一对多关联:

那么就需要在Orders表的.hbm.xml中这样配置:

<set name="orders"      outer-join="true"        cascade="all"

lazy="false"         batch-size="3"         inverse="true"  >

<key column="CUSTOMER_ID"/>

<one-to-many class="com.weikun.po.Orders"/>

</set>

 扩展解释:

lazy:设置关联级别上的属性,取值:false,true

inverse:关联关系的工作由谁负责,false:默认值,表示由主控方负责;true为被控方负责。

batch-size:批量检索功能,设定批量检索尺寸。

outer-join="true"在关联级别上设置为迫切左外连接检索

constrained:约束

catalog:目录

alias:别名

fetch:  设置"select" 和  "join"

用一对多关系来说明‘select’和‘join’的区别:

fetch = "select"是在查询的时候先查询出一那端的实体,然后在根据一端的查询出多那端的实体,会产生1+n条sql语句;

fetch = "join"是在查询的时候使用外连接进行查询,同时把一端和多端都查询出来了,不会产生1+n的现象。

lazy 和fetch配合使用的问题:

1、当lazy="true" fetch = "select" 的时候 , 这个时候是使用了延迟策略,开始只查询出一端实体,多端的不会查询,只有当用到的时候才会发出sql语句去查询 ;

2、当lazy="false" fetch = "select" 的时候 , 这个时候是使没有用延迟策略,同时查询出一端和多端,同时产生1+n条sql.

3、当lazy="true"/lazy="false" fetch = "join"的时候,自己认为这个时候延迟已经没有什么用了,因为采用的是外连接查询,同时把一端和多端都查询出来了,延迟没有起作用。

最新文章

  1. [WPF]控件应用多个样式
  2. 关于JS事件的几点总结
  3. ArcGIS操作Excel文件没有注册类解决办法
  4. 【转】数据预处理之独热编码(One-Hot Encoding)
  5. C#中SaveFileDialog 和OpenFileDialog 的用法
  6. vi 技巧
  7. java Reference(摘录)
  8. NEURAL NETWORKS, PART 1: BACKGROUND
  9. java 表格项的删除、编辑、增加 修改版
  10. 兔子--Android中的五大布局
  11. hdu1853解题报告
  12. CDN(转载)
  13. Python资源汇总
  14. 使用freemarker模板生成word文档
  15. js 对时间进行判断 现在的时间是否在后台给的开始时间 和 结束时间 内 (时间格式为:2018-09-03 09:20:30)
  16. Labview学习笔记-条件结构的两个问题
  17. Java开发环境配置(4)--Maven安装 环境变量配置,本地仓库配置---插件安装
  18. 软件工程项目之摄影App(总结)
  19. 通过nginx中转获取不到IP的问题解决
  20. Memcached学习一:Memcached安装使用

热门文章

  1. OSG-简单模型控制
  2. 【Extremely Basic Words for Listening】word list
  3. C++clock()延时循环
  4. facebook演讲
  5. 阿里校招内推C++岗位编程题第一题 空格最少的字符串
  6. POJ 3384 Feng Shui(计算几何の半平面交+最远点对)
  7. Alphabetic Removals(模拟水题)
  8. Thunder团队第六周 - Scrum会议3
  9. oracle数据库之游标的使用
  10. Deeplearning——Logistics回归