hibernate
猫不在
这个作者很懒,什么都没留下…
展开
-
hibernate 的session一级缓存
概述Session 接口是 Hibernate 向应用程序提供的操纵数据库的最主要的接口, 它提供了基本的保存, 更新, 删除和加载 Java 对象的方法.Session 具有一个缓存, 位于缓存中的对象称为持久化对象, 它和数据库中的相关记录对应. Session 能够在某些时间点, 按照缓存中对象的变化来执行相关的 SQL 语句, 来同步更新数据库, 这一过程被称为刷新缓存(flush)站原创 2017-12-19 18:07:37 · 211 阅读 · 0 评论 -
映射继承关系
继承映射对于面向对象的程序设计语言而言,继承和多态是两个最基本的概念。Hibernate 的继承映射可以理解持久化类之间的继承关系。例如:人和学生之间的关系。学生继承了人,可以认为学生是一个特殊的人,如果对人进行查询,学生的实例也将被得到三种映射Hibernate支持三种继承映射策略:使用 subclass 进行映射:将域模型中的每一个实体对象映射到一个独立的表中,也就是说不用在关系数据模型中考虑原创 2017-12-21 10:21:52 · 357 阅读 · 0 评论 -
一对多关联关系映射和设置级联属性
在领域模型中, 类与类之间最普遍的关系就是关联关系. 在 UML 中, 关联是有方向的. 以 Customer 和 Order 为例: 一个用户能发出多个订单, 而一个订单只能属于一个客户. 从 Order 到 Customer 的关联是多对一关联; 而从 Customer 到 Order 是一对多关联单向关联双向关联单向 n-1单向 n-1 关联只需从 n 的一端可以访问 1 的一端原创 2017-12-20 16:27:10 · 1248 阅读 · 0 评论 -
多对多关系映射
域模型和关系模型 关系表单向多对多n-n 的关联必须使用连接表与 1-n 映射类似,必须为 set 集合元素添加 key 子元素,指定 CATEGORIES_ITEMS 表中参照 CATEGORIES 表的外键为 CATEGORIY_ID. 与 1-n 关联映射不同的是,建立 n-n 关联时, 集合中的元素使用 many-to-many. many-to-many 子元素的 class 属性原创 2017-12-20 20:31:50 · 449 阅读 · 0 评论 -
QBC检索和本地SQL检索
QBC 查询就是通过使用 Hibernate 提供的 Query By Criteria API 来查询对象,这种 API 封装了 SQL 语句的动态拼装,对查询提供了更加面向对象的功能接口本地SQL查询来完善HQL不能涵盖所有的查询特性步骤创建criteria 对象设置各种检索条件执行检索and 与 or@Test public void TestQbcAnd(){原创 2017-12-21 20:12:33 · 216 阅读 · 0 评论 -
hibernate的二级缓存
集合缓存,集合中的元素也需要设置缓存,否则只会保存id,然后再按照id去查询,更加麻烦。查询缓存,需要开启查询缓存,然后在代码中也要开启缓存。查询缓存和二级缓存不是同一种。时间戳缓存,可以判断在使用缓存的时候,缓存是否在其中发生过更改,导致过期。Hibernate 缓存缓存(Cache): 计算机领域非常通用的概念。它介于应用程序和永久性数据存储源(如硬盘上的文件或者数据库)之间,其作用是降低原创 2017-12-21 23:09:27 · 181 阅读 · 0 评论 -
HQL (迫切)左外连接
迫切左外连接:LEFT JOIN FETCH 关键字表示迫切左外连接检索策略.list() 方法返回的集合中存放实体对象的引用, 每个 Department 对象关联的 Employee 集合都被初始化, 存放所有关联的 Employee 的实体对象. 查询结果中可能会包含重复元素, 可以通过一个 HashSet 来过滤重复元素 @Test public void testGe原创 2017-12-21 18:05:02 · 3105 阅读 · 0 评论 -
HQL 检索方式
概述Hibernate 提供了以下几种检索对象的方式导航对象图检索方式: 根据已经加载的对象导航到其他对象OID 检索方式: 按照对象的 OID 来检索对象HQL 检索方式: 使用面向对象的 HQL 查询语言QBC 检索方式: 使用 QBC(Query By Criteria) API 来检索对象. 这种 API 封装了基于字符串形式的查询语句, 提供了更加面向对象的查询接口. 本地原创 2017-12-21 15:48:23 · 240 阅读 · 0 评论 -
hibernate的检索策略
综述类检索策略只和load方法有关联一对多,多对多的set标签lazy属性,会导致对多的那一端是否用延迟batch-size,可以指定一次检索的个数,用in方法fetchsize,指定查询的方法,如果是select,就用select语句查询如果是subselect,则忽略batchSize属性,用子句查询实现一次全部查询如果是join语句,则忽略lazy属性,在get方法时直接查询多的原创 2017-12-21 13:17:13 · 252 阅读 · 0 评论 -
hibernate的方言是什么??
转载之http://blog.csdn.net/qq_33429968/article/details/53536778前言在部署某个项目代码时,使用maven clean package wildfly:deploy命令部署到wild服务器时总是报错(报错信息暂时无法提供了)。后经查询,是Hibernate方言的问题,花了一个多小时的时间了解了一下,稍转载 2017-12-15 17:02:51 · 2993 阅读 · 0 评论 -
1对1关联关系映射
域模型关系数据模型按照外键映射按照主键映射基于外键映射的 1-1对于基于外键的1-1关联,其外键可以存放在任意一边,在需要存放外键一端,增加many-to-one元素。为many-to-one元素增加unique=“true” 属性来表示为1-1关联 <many-to-one name="manLover" class="com.school.ManLover" unique="true"原创 2017-12-20 19:01:07 · 596 阅读 · 0 评论 -
映射组成关系
域模型和关系数据模型建立域模型和关系数据模型有着不同的出发点:域模型: 由程序代码组成, 通过细化持久化类的的粒度可提高代码的可重用性, 简化编程在没有数据冗余的情况下, 应该尽可能减少表的数目, 简化表之间的参照关系, 以便提高数据的访问速度持久化类的属性Hibernate 把持久化类的属性分为两种: 值(value)类型: 没有 OID, 不能被单独持久化, 生命周期依赖于所属的持久化类原创 2017-12-20 14:27:47 · 276 阅读 · 0 评论 -
事务的几种并发问题
以下内容均截取自–spring3.0企业应用开发实战。 作者关于这点的问题,总结的很好,例子也很好。原创 2017-12-19 18:12:05 · 2731 阅读 · 1 评论 -
hinernate中持久化对象的状态
站在持久化的角度, Hibernate 把对象分为 4 种状态: 持久化状态, 临时状态, 游离状态, 删除状态. Session 的特定方法能使对象从一个状态转换到另一个状态. 临时对象(Transient): 在使用代理主键的情况下, OID 通常为 null 不处于 Session 的缓存中 在数据库中没有对应的记录持久化对象(也叫”托管”)(Persist): OID 不为 n原创 2017-12-19 21:19:06 · 344 阅读 · 0 评论 -
Hibernate 与触发器协同工作
问题Hibernate 与数据库中的触发器协同工作时, 会造成两类问题 1. 触发器使 Session 的缓存中的持久化对象与数据库中对应的数据不一致:触发器运行在数据库中, 它执行的操作对 Session 是透明的 2. Session 的 update() 方法盲目地激发触发器: 无论游离对象的属性是否发生变化, 都会执行 update 语句, 而 update 语句会激发数据库中相应的触发原创 2017-12-19 21:22:03 · 313 阅读 · 0 评论 -
通过 Hibernate 调用存储过程
调用存储过程原创 2017-12-20 11:09:56 · 208 阅读 · 0 评论 -
对象关系映射文件详解
定义POJO 类和关系数据库之间的映射可以用一个XML文档来定义。通过 POJO 类的数据库映射文件,Hibernate可以理解持久化类和数据表之间的对应关系,也可以理解持久化类属性与数据库表列之间的对应关系在运行时 Hibernate 将根据这个映射文件来生成各种 SQL 语句 映射文件的扩展名为 .hbm.xml说明hibernate-mapping类层次:class主键:id基本类型原创 2017-12-20 11:56:59 · 885 阅读 · 0 评论 -
Java 时间和日期类型的 Hibernate 映射
在 Java 中, 代表时间和日期的类型包括: java.util.Date 和 java.util.Calendar. 此外, 在 JDBC API 中还提供了 3 个扩展了 java.util.Date 类的子类: java.sql.Date, java.sql.Time 和 java.sql.Timestamp, 这三个类分别和标准 SQL 类型中的 DATE, TIME 和 TIMESTAM原创 2017-12-20 12:01:29 · 309 阅读 · 0 评论 -
hibernate数据类型之间的映射关系
参照下表原创 2017-12-20 12:04:44 · 174 阅读 · 0 评论 -
Java 大对象类型的 Hiberante 映射
在 Java 中, java.lang.String 可用于表示长字符串(长度超过 255), 字节数组 byte[] 可用于存放图片或文件的二进制数据. 此外, 在 JDBC API 中还提供了 java.sql.Clob 和 java.sql.Blob 类型, 它们分别和标准 SQL 中的 CLOB 和 BLOB 类型对应. CLOB 表示字符串大对象(Character Large Objec原创 2017-12-20 12:09:08 · 277 阅读 · 0 评论 -
Hibernate 的配置文件
Hibernate 配置文件主要用于配置数据库连接和 Hibernate 运行时所需的各种属性每个 Hibernate 配置文件对应一个 Configuration 对象 Hibernate配置文件可以有两种格式:hibernate.propertieshibernate.cfg.xml 常用属性JDBC 连接属性connection.url:数据库URL connection.user原创 2017-12-20 13:08:11 · 161 阅读 · 0 评论 -
hibernate环境搭建
定义orm: Object Relationship Mapping 对象关系映射 对jdbc进行了轻量级的封装。流程jdbc充当了持久化层。其它ORMmybatisEJBTOPlink步骤配置文件文件应该放在classpath根路径下,因为config默认读取该文件的位置是根路径下。create : 会根据 .hbm.xml 文件来生成数据表, 但是每次运行都会删除上一次的表 ,重新原创 2017-11-14 16:51:41 · 246 阅读 · 0 评论