
hibernate
文章平均质量分 71
iteye_20137
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
hibernate中SQLQuery的addEntity();方法
如果使用原生sql语句进行query查询时,hibernate是不会自动把结果包装成实体的。所以要手动调用addEntity(Class class)等一系列方法。如session.createSQLQuery(sql).addEntity(Class class);注意hibernate3.0.5不支持,单个参数的addEntity方法另外,hibernate3.2可以对原生sql 查询...原创 2011-04-13 14:48:37 · 230 阅读 · 0 评论 -
深入浅出hibernate_夏昕_fetch关键字只对inner join和left join有效
p188原创 2010-12-13 16:00:53 · 107 阅读 · 0 评论 -
深入浅出hibernate_夏昕_联合查询_inner join fetch
p185原创 2010-12-13 15:54:17 · 91 阅读 · 0 评论 -
深入浅出hibernate_夏昕_引用查询_代码中不允许sql语句
p184原创 2010-12-13 15:47:21 · 97 阅读 · 0 评论 -
深入浅出hibernate_夏昕_HQL语句参数绑定
p181原创 2010-12-13 15:39:14 · 115 阅读 · 0 评论 -
实体对象的三个状态
如下图原创 2010-11-08 15:42:46 · 183 阅读 · 0 评论 -
Hibernate检索策略学习之--批量加载
所谓批量加载,即把原本要发送的SQL分批统一发送,比如说原本要发送100条SQL,如果设置batch-size=3,则只需要发送100/3+1=34条,可以提高效率批量加载分为延迟加载和立即加载,先说立即加在首先建立测试数据库 CREATE TABLE certificate ( id varchar(100) NOT NULL default '', description ...原创 2010-11-08 14:57:59 · 151 阅读 · 0 评论 -
Hibernate inner join fetch,left join fet
inner join fetch/*** 一对多中的一方inner join fetch多方* 这里不能用inner join on* 查询结果是它把一方对多方的那个集合里面的对象都查询出来放到一方的集合中*/public List getallByinnerjoinTShop(){ List list=null; try { Query query=this.GetSession(...原创 2010-11-08 14:11:51 · 222 阅读 · 0 评论 -
Hibernate 本地SQL查询SQLQuery
使用SQLQuery对原生SQL查询执行的控制是通过SQLQuery接口进行的,通过执行Session.createSQLQuery()获取这个接口。最简单的情况下,我们可以采用以下形式:List cats = sess.createSQLQuery( " select * from cats " ).addEntity(Cat. class ).list(); 这个查询指定了:S...原创 2010-11-08 11:32:49 · 68 阅读 · 0 评论 -
自定义用户类(UserType)的使用
学习hibernate有段时间了,最近复习这门技术时看到了自定义用户类的使用。个人认为这个知识点比较重要,现总结下,供以后自己回顾时看。 hibernate支持的类型已经基本上能满足用户的各方面需求,但有些存放进数据库的数据并不能直接拿来放页面显示,必须经过一定格式的转换,最典型的例子就是多个email的存储问题。用户在页面可以同时输入多个email信息,如果在数据库中定义多个varch...原创 2011-08-04 10:46:28 · 939 阅读 · 0 评论 -
技巧:利于ThreadLocal模式管理Session
在利用Hibernate开发DAO模块时,我们和Session打的交道最多,所以如何合理的管理Session,避免Session的频繁创建和销毁,对于提高系统的性能来说是非常重要的,以往是通过eclipse的插件来自动完成这些代码的,当然效果是不错的,但是总是觉得不爽(没有读懂那些冗长的代码),所以现在打算自己实现Session管理的代码。 我们知道Session是由SessionFactor...原创 2011-08-02 10:31:18 · 182 阅读 · 0 评论 -
Hibernate中的回调与拦截机制
在某些情况下,我们需要对实体的CURD操作进行捕获并执行一些操作,这可以通过数据库触发器来实现,但是正如我们上一节中所分析的,由于触发器的执行对Hibernate Session是透明的,因此会带来很多问题(参见上一节)。为此Hibernate提供了一些专门用于捕获监听实体CURD操作的接口,通过这些接口可以实现类似触发器的功能,能够在实体发生CURD操作时捕获事件,并且执行相应的动作逻辑。在Hi...原创 2011-07-27 17:31:44 · 101 阅读 · 0 评论 -
Hibernate3与Hibernate2区别
1.1 Hibernate API 变化 1.1.1 包名 1.1.2 org.hibernate.classic包 1.1.3 Hibernate所依赖的第三方软件包 1.1.4 异常模型 1.1.5 Session接口 1.1.6 createSQLQuery() 1.1.7 Life...原创 2010-11-08 09:22:07 · 169 阅读 · 0 评论 -
知识概论
一、一对一 唯一约束二、一对多 双向 控制反转三、多对多 中间表 影响性能原创 2010-11-05 15:39:34 · 108 阅读 · 0 评论 -
双向一对多
但是,纵使采用这些权益之计,由于Hibernate实现机制中,采用了两条SQL进行一次数据插入操作,相对单条insert,几乎是两倍的性能开销,效率较低,因此,对于性能敏感的系统而言,这样的解决方案所带来的开销可能难以承受。针对上面的情况,我们想到,如果addr对象知道如何获取user_id字段的内容,那么执行insert语句的时候直接将数据植入即可。这样不但绕开了约束违例的可能,而且还节省了...原创 2010-11-05 15:18:54 · 104 阅读 · 0 评论 -
O/R Mapping基础(二)
5.2.2. 基本值类型基本类型可以大致的分为: integer, long, short, float, double, character, byte, boolean, yes_no, true_false 这些类型都对应Java的原始类型或者其包装类,来适合(特定厂商的)SQL 字段类型。boolean, yes_no 和 true_fals...原创 2010-11-05 14:12:03 · 146 阅读 · 0 评论 -
O/R Mapping基础(一)
http://www.kuqin.com/docs/hibernate/mapping.html第 5 章 O/R Mapping基础5.1. 映射声明(Mapping declaration)对象和关系数据库之间的映射是用一个XML文档(XML document)来定义的。这个映射文档被设计为易读的,并且可以手工修改。映射语...原创 2010-11-05 14:06:03 · 148 阅读 · 0 评论 -
深入浅出hibernate_夏昕_hibernate别名完成ResultSet和实体的映射
p194原创 2010-12-13 16:54:47 · 120 阅读 · 0 评论 -
深入浅出hibernate_夏昕_hibernate对储存过程的处理
p197原创 2010-12-13 17:02:58 · 130 阅读 · 0 评论 -
深入浅出hibernate_夏昕_hibernate别名完成ResultSet和实体的映射
p199原创 2010-12-13 17:09:09 · 89 阅读 · 0 评论 -
Hibernate的clear(),flush(),evict()方法详解
1.Clear 方法 无论是Load 还是 Get 都会首先查找缓存(一级缓存) 如果没有,才会去数据库查找,调用Clear() 方法,可以强制清除Session缓存。 例: view plaincopy to clipboardprint?public void testClear(){ Session session = HibernateUitl...原创 2011-03-24 11:18:47 · 239 阅读 · 0 评论 -
hibernate模糊查询-Restrictions.ilike & Expression.like
Criteria criteria = session.createCriteria(TaDiagnoseSystem.class); //增加查询条件 if(StringUtils.isNotEmpty(systemName)){// criteria.createCriteria("taDiagnoseSystemSubs").add(Restrictions.ilike("s...原创 2011-03-11 10:32:00 · 633 阅读 · 0 评论 -
Hibernate分页查询小结
通常使用的Hibernate通常是三种:hql查询,QBC查询和QBE查询: 1、QBE(Qurey By Example)检索方式 QBE是最简单的,但是功能也是最弱的,QBE的功能不是特别强大,仅在某些场合下有用。一个典型的使用场合就是在查询窗口中让用户输入一系列的查询条件,然后返回匹配的对象。QBE只支持=和like比较运算符,无法不大区间值,及其或的匹配。在这种情况下,还是采用HQL检索方...原创 2011-03-10 11:14:08 · 132 阅读 · 0 评论 -
current_session_context_class
此设置的作用如下:What does sessionFactory.getCurrentSession() do? First, you can call itas many times and anywhere youlike, once you get hold of your SessionFactory (easy thanks toHibernateUtil). The ...原创 2011-03-07 15:31:42 · 132 阅读 · 0 评论 -
hibernate输出sql语句参数配置
在J2ee应用中,如果采用Hibernate框架,可以自动建立数据库实体与Java实体类的映射关系,大大方便Java程序进行持久化对象访问和操作,从而明显提高企业应用开发效率,减轻Java程序与后台数据库的依赖性。 但是,有时候如果操作不慎,可能造成映射关系不完整(特别是存在外键链接的时候),造成访问数据库对象时程序有Bug。这时,可以通过参数配置,让 Hibernate在每次需要从数据库查询记录...原创 2010-08-09 09:16:42 · 178 阅读 · 0 评论 -
Hibernate缓存管理(2)
2.2、一级缓存的管理当应用程序调用Session的save()、update()、savaeOrUpdate()、get()或load(),以及调用查询接口的list()、iterate()或filter()方法时,如果在Session缓存中还不存在相应的对象,Hibernate就会把该对象加入到第一级缓存中。当清理缓存时,Hibernate会根据缓存中对象的状态变化来同步更新数据库。...原创 2010-07-21 14:47:42 · 84 阅读 · 0 评论 -
Hibernate缓存管理(1)
http://developer.51cto.com/art/200801/63576.htmHibernate中提供了两级Cache,第一级别的缓存是Session级别的缓存,它是属于事务范围的缓存。这一级别的缓存由hibernate管理的,一般情况下无需进行干预;第二级别的缓存是SessionFactory级别的缓存,它是属于进程范围或群集范围的缓存。这一级别的缓存可以进行配置和更改,...原创 2010-07-21 14:46:15 · 384 阅读 · 0 评论 -
QBC和QBE查询方法
http://student.youkuaiyun.com/space.php?uid=117956&do=blog&id=257891: QBE (Query By Example) Criteria cri = session.createCriteria(Student.class); cri.add(Example.create(s)); //s是一个 Student ...原创 2010-07-21 09:48:40 · 441 阅读 · 0 评论 -
一个关于Hibernate的优化实例:从HQL到QBC,从QBC到QBE,再到“增强的”QBE
http://www.java-cn.com/club/html/07/n-1807.html 先解释一下标题的含义:为了实现一个组合条件查询,先是使用HQL书写,然后改用Query by Criteria方式,再尝试Query by Example,最后自己实现了一个增强的Example类来解决问题。 5n;H1H(Yb.AmoJAVA中文站社区门户(D*BS&zP6x;R关于此...原创 2010-07-21 09:44:42 · 109 阅读 · 0 评论 -
hibernate二级缓存
缓存是位于应用程序与物理数据源之间,用于临时存放复制数据的内存区域,目的是为了减少应用程序对物理数据源访问的次数,从而提高应用程序的运行性能. Hibernate在查询数据时,首先到缓存中去查找,如果找到就直接使用,找不到的时候就会从物理数据源中检索,所以,把频繁使用的数据加载到缓存区后,就可以大大减少应用程序对物理数据源的访问,使得程序的运行性能明显的提升. Hibernate缓存分类...原创 2010-06-28 14:22:03 · 81 阅读 · 0 评论 -
hibernate二级缓存攻略
很多人对二级缓存都不太了解,或者是有错误的认识,我一直想写一篇文章介绍一下hibernate的二级缓存的,今天终于忍不住了。 我的经验主要来自hibernate2.1版本,基本原理和3.0、3.1是一样的,请原谅我的顽固不化。 hibernate的session提供了一级缓存,每个session,对同一个id进行两次load,不会发送两条sql给数据库,但是session关闭的时候,一级缓存就失效...原创 2010-06-28 14:17:46 · 78 阅读 · 0 评论 -
Hibernate的拦截器和监听器
核心提示:最近项目需要,用到了Hibernate的拦截器和监听器,有些小小心得,和大家分享下。 首先说说这两个东西。 拦截器(Intercept):顾名思义,拦截操作,也就是在Hibernate做出动作之前会调用的方法。如果你有需要在Hibernate操作数据库之前想要做的操作,就需要 最近项目需要,用到了Hibernate的拦截器和监听器,有些小小心得,和大家分享下。 首先说说这两...原创 2010-12-14 15:06:47 · 79 阅读 · 0 评论 -
孙卫琴.精通Hibernate:Java对象持久化技术详解_触发器使缓存与数据库不一致
p198原创 2010-12-14 08:46:40 · 169 阅读 · 0 评论 -
孙卫琴.精通Hibernate:Java对象持久化技术详解_优化报表查询的性能
p332原创 2010-12-13 17:51:34 · 151 阅读 · 0 评论 -
孙卫琴.精通Hibernate:Java对象持久化技术详解_查询结果类型
p329原创 2010-12-13 17:34:54 · 145 阅读 · 0 评论 -
孙卫琴.精通Hibernate:Java对象持久化技术详解_投影查询
p325原创 2010-12-13 17:31:24 · 233 阅读 · 0 评论 -
hibernate关联映射之逐步分析
一对一关联映射(单双向)1 单向主要是配置文件上的标签配置比如对于person和idcard两个pojo类。Person持有idcard的引用。在person.hbm.xml里,person的主键要来源于idcard类,也就是共享idcard的主键。配置:<id name= "id"><generator class="foreign(而不是原来的nativ...原创 2010-11-04 19:52:29 · 74 阅读 · 0 评论 -
三种状态
(madp:如:session.beginTransaction();Person p = new Person();p.setId(169);session.delete(p);是不能删除记录的,因为p处于临时状态) 在Hibernate中,对象有三种状态:临时状态、持久状态和游离状态。临时状态:当new一个实体对象后,这个对象处于临时状态,即这个对象只是一个保存临时...原创 2010-11-04 18:49:15 · 272 阅读 · 0 评论 -
Hibernate批量更新和批量删除实战
Hibernate批量更新是指在一个事务中更新大批量数据,Hibernate批量删除是指在一个事务中删除大批量数据。以下程序直接通过Hibernate API批量更新CUSTOMERS表中年龄大于零的所有记录的AGE字段: 本文向大家介绍Hibernate批量更新和Hibernate批量删除,可能好多人还不了解Hibernate批量更新和Hibernate批量删除,没有关系,看完本...原创 2010-11-04 17:55:24 · 109 阅读 · 0 评论 -
hibernate实例简析-hibernate_one2one_ufk_2
hibernate一对一唯一外键关联映射(双向关联PersonIdCard)一对一唯一外键关联双向,需要在另一端(idcard),添加标签,指示hibernate如何加载其关联对象,默认根据主键加载person,外键关联映射中,因为两个实体采用的是person的外键维护的关系,所以不能指定主键加载person,而要根据person的外键加载,所以采用如下映射方式:===...原创 2010-08-19 11:36:57 · 100 阅读 · 0 评论