
Hibernate
bsr1983
这个作者很懒,什么都没留下…
展开
-
学习Hibernate源码一_下载hibernate源码并编译为eclipse项目
学习Hibernate源码一1.下载hibernate源码,并构建起eclipse项目(1)hibernate的源代码采用git管理,安装git客户端以后,通过点击https://github.com/hibernate/hibernate-orm页面右侧的“Clone in Desktop”可启动客户端将代码clone到本地。当然也可以直接使用git clone git://g...2013-08-23 13:26:15 · 421 阅读 · 0 评论 -
Hibernate实战(第2版)学习笔记七
131.报表查询报表查询利用数据库执行有效的数据分组和聚集的能力。它们天生更为相关;它们并非始终返回实体。HQL和JPA QL允许使用几个最常用于报表的SQL特性——虽然它们也用于其他目的。在报表查询中,给投影使用SELECT子句,给聚集使用GROUP BY和HAVING子句。(1)利用统计函数投影HQL识别的并在JPA QL中标准化的统计函数式count()、min()、max...原创 2014-08-01 16:55:28 · 171 阅读 · 0 评论 -
Hibernate源码学习六
接源码学习五的内容,sessionFactory创建好之后,就是打开数据库连接,执行数据库操作了。 主方法中的代码为:UserInfo user = new UserInfo();user.setName("ibsrapp");user.setPassword("ibsrapp");user.setBirthday(new Date());//获取一个se...2013-09-22 19:53:21 · 480 阅读 · 0 评论 -
Hibernate实战(第2版)学习笔记六
121.给结果进行分页常用的方法是分页(pagination)。用户可以看到他们搜索请求的结果页面。这个页面一次显示有限的子集,用户可以手工导航到后一个和前一个页面。在Hibernate中,Query和Criteria接口支持查询结果的这种分页:对setMaxResults(10)的调用把查询结果集限制为由数控返回的前10个对象(行)。在SQL中表达分页并没有标准的方法——Hiber...原创 2014-07-25 17:39:18 · 161 阅读 · 0 评论 -
Hibernate实战(第2版)学习笔记五
111.默认的抓取计划(fetch plan)和抓取策略(fetching strategy)是应用到特定的实体关联或者集合的计划和策略。换句话说,它定义了当加载自己的实体对象,以及访问一个被关联的对象或者集合时,被关联的对象或者集合是否以及如何被加载。每一种获取方法否可能使用不同的计划和策略——也就是说,集合定义了持久化对象网络的哪一部分应该被获取和怎样获取。(1)HQL和JPA QL...原创 2014-07-25 17:38:35 · 148 阅读 · 0 评论 -
Hibernate实战(第2版)学习笔记四
101.在Java SE中扩展持久化上下文 1)默认的持久化上下文范围 在没有EJB的JPA中,持久化上下文被绑定到EntityManager实例的生命周期和范围。为了在对话中给所有的事件重用相同的持久化上下文,只需要重用同一个EntityManager去处理所有的事件。 2)防止自动清除 102.使用EJB的上下文传播 对于...原创 2014-07-25 17:34:13 · 157 阅读 · 0 评论 -
Hibernate源码学习五_创建SessionFactory
接学习四,下来就是调用configuration的buildSessionFactory方法来创建一个sessionFactory了,具体代码如下:public SessionFactory buildSessionFactory(ServiceRegistry serviceRegistry) throws HibernateException { LOG.debugf( "Pre...2013-09-12 18:39:49 · 265 阅读 · 0 评论 -
Hibernate源码学习四 _服务注册
接学习三中的内容,首先看一下如何根据配置文件创建一个SessionFactory,通过跟踪相关代码来了解其中的来龙去脉。 主方法中创建SessionFactory相关的代码为: ServiceRegistry serviceRegistry = new ServiceRegistryBuilder() .applySettings...2013-09-12 12:39:58 · 138 阅读 · 0 评论 -
Hibernate实战(第2版)学习笔记三
81.有时候,通过外部联结,可以在单个查询中更好地加载实体实例和集合(实体可能有一个空的集合,因此无法使用内部联结)。如果想要应用这个主动抓取,就不要为集合声明装载程序引用。实体装载程序负责集合的获取:<sql-query name="loadUser"><return alias="u" class="User"/><return-join alias...原创 2014-07-18 19:26:40 · 201 阅读 · 0 评论 -
Hibernate实战(第2版)学习笔记二
51.Hibernate也理解type="java.lang.String",因此它不必使用反射。这种方法不太适用的最重要案例是java.util.Date属性。默认情况下,Hibernate认为java.util.Date是一个timestamp映射。如果不希望日期和时间信息都持久化,就要显式地指定type=“time”或者type="date"。利用JPA注解,自动侦测属性的映射类...原创 2014-07-18 19:25:02 · 280 阅读 · 0 评论 -
Hibernate实战(第2版)学习笔记一
1.ORM就是利用描述对象和数据库之间映射的元数据,自动(且透明)地把Java应用程序中的对象持久化到关系数据库中的表。ORM本质上是把数据从一种表示法(可逆)转换为另一种表示法进行工作。2.使用连接池的原因有3:(1)获得性的连接很昂贵。有些数据库管理系统甚至给每个连接启动一个全新的服务器进程。(2)为数据库管理系统维护许多闲置的连接很昂贵,并且连接池可以最优化闲置连接的使用(或者...原创 2014-07-18 19:23:50 · 254 阅读 · 0 评论 -
学习Hibernate源码三_Hibernate中的配置文件解析
本节要学习一下Hibernate的配置文件的具体加载、解析的过程,以及涉及到的相关代码,思路是建立一个简单的java项目,配置一个hbm文件,启动后,跟踪调试加载解析hbm的过程,学习相关的代码。 搭建项目后,将所需jar放入java项目的lib目录,在Hibernate的手册中说明此处也可以使用Maven来设置依赖jar,我这里还是使用比较原始的方式。直接建立一个lib目录放置...2013-09-02 20:49:15 · 191 阅读 · 0 评论 -
学习Hibernate源码二_Hibernate对象映射文件hbm学习
Hibernate源码学习笔记二 Hibernate的源码编译为eclipse项目后,下一步就开始源码的学习了,但应该从哪一块的源码看起,也没有一个确定的方案,暂时准备结合Hibernate的教程中的章节进行源码的阅读。初步方案是根据Hibernate的手册,按照介绍的章节查看对应的源码,分析核心部分的源码,并结合Hibernate开发向导中的内容,深入理解背后的原理,第一步...2013-08-29 22:37:17 · 221 阅读 · 0 评论 -
Hibernate实战(第2版)学习笔记八
140.OSIV(Open Session In View)模式背后的动机在于,视图通过导航从某个脱管对象开始的对象图,从业务对象中拖出信息。视图(即,必须被渲染和显示的页面)访问这个脱管对象,给页面获取内容数据。在Hibernate应用程序中,可能有未被初始化的关联(代理或者集合),它们必须在渲染视图时被驳回。如果Hibernate必须延迟加载对象,为什么它不能打开新的会话?Hiber...原创 2014-08-01 16:56:03 · 114 阅读 · 0 评论