Hibernate框架

来源:互联网 发布:虚荣辅助软件 编辑:程序博客网 时间:2024/05/29 09:50

一、Hibernate:

是一种持久层框架,轻量级,没有侵入性。
这里写图片描述

二、三种状态:

Transient:持久状态,没有被session管理,在数据库中没有与之匹配的记录
Persistent:纳入session管理,在数据库中有与之匹配的记录,当属性发生改变,在清理缓存时会自动和数据库同步
Detached:没哟被session管理,在数据库中存在与之匹配的记录

三、关系模型放到对象模型:

1.查询

查询存在的数据使用get,查询不存在的数据采用load
两者区别:
get不支持lazy,load默认支持延迟加载
get加载数据,不存在返回null;load返回ObjectNotFoundException异常

2.删除

先加载,再删除delete

3.更新

先加载,后更新
这里写图片描述

四、映射:

1、一对一:

单向:

这里写图片描述

双向:

这里写图片描述
property-ref属性为关系字段的名称

2、一对多:

双向关联的映射方式:
(1)在一的一端的集合上采用标签,多的一端加入一个外键;
(2)在多的一端采用标签。

这里写图片描述

inverse属性可以用在一对多和多对多双向关联上,inverse默认为false,为false表示可以维护关系,为true,则本端不能维护关系,会交给另一端维护关系,本端失效。

3、多对一

这里写图片描述
再设置cascade=”all”,表示支持级联操作。

4、多对多

单向:

这里写图片描述

双向:

这里写图片描述

5、复合主键映射:

这里写图片描述

composite-id标签,type为date,只存年月日。
通常做法是将主键相关字段放到一个单独的类中,这样类是有要求的:
(1)必须实现序列化接口;
(2)覆盖equals和hashcode方法。

6、Component映射:

这里写图片描述

Component是某个实体的逻辑组成部分,它与实体类的主要差别在于,它没有oid;
采用Component的好处,实现对象模型的细粒度划分,复用率高,含义名义明确,层次分明,对象模型与关系模型的而设计恰恰相反,对象模型一般是细粒度的,关系模型一般是粗粒度的。

7、集合映射:

这里写图片描述
这里写图片描述

总结:

该篇博客我们对Hibernate简单了解,另外支持hibernate的查询语言HQL同样重要,我们下篇继续,感谢您的阅读!