hibernate
文章平均质量分 66
Swearyd7
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Hibernate.initialize(Obj)用法
转 在使用hibernate进行持久化时,有时需要动态的改变对象的加载,比如在编辑页面里面lazy=true,而在浏览页面lazy=false,这样可以在需要lazy的地方才进行控制。而配置文件中Lazy属性是全局控制的,如何处理呢? 当元素或者元素的lazy属性为true时,load() or get() or find()加载这些对象时,Hibernate不会马上产生任何sel...原创 2011-07-22 14:57:11 · 114 阅读 · 0 评论 -
Hibernate 二级缓存
二级缓存 Hibernate 对数据的缓存包括两个级:[color=red]一级缓存,在Session的级别上进行,主要是[b]对象缓存[/b],以其id为键保存对象,在Session的生命期间存在;二级缓存,在SessionFactory的级别上进行,有[b]对象缓存和查询缓存[/b],查询缓存以查询条件为键保存查询结果,在SessionFactory的生命期间存在。[/color]默...原创 2012-04-20 10:35:56 · 112 阅读 · 0 评论 -
hibernate之检索策略与检索方式
[color=red]检索策略[/color]包括 立即检索 延迟检索 迫切左外连接类级别的可以用立即检索和延迟检索关联级别可用以上三种。延迟检索的原理是动态生成要检索的类的代理类的实例,这个代理类继承了要检索的类,有相关的类信息等,并且之初始化它的OID属性(即查询条件),其他属性皆为null,这样占用很少内存。可以用Hibernate的静态方法initialize()在...原创 2012-03-11 10:54:28 · 122 阅读 · 0 评论 -
spring+hibernate中处理oracle BLOB
1、配置hibernate: 1.1、配置hibernate的持久类文件中对应的字段为byte[]类型 2.2、配置hibernate的类映射文件中对应的字段type为 org.springframework.orm.hibernate3.support.BlobByteArrayType2、配置spring: 2.1、配置nativeJdb...原创 2012-02-28 16:11:12 · 208 阅读 · 0 评论 -
使用JDBC和Hibernate来写入Blob型数据到Oracle中(1)
转Oracle的Blob字段比较特殊,他比long字段的性能要好很多,可以用来保存例如图片之类的二进制数据。写入Blob字段和写入其它类型字段的方式非常不同,因为Blob自身有一个cursor,你必须使用cursor对blob进行操作,因而你在写入Blob之前,必须获得cursor才能进行写入,那么如何获得Blob的cursor呢?这需要你先插入一个empty的blob,这...原创 2012-02-28 16:09:11 · 119 阅读 · 0 评论 -
HibernateTemplate 源码分析(三)OpenSessionInViewFilter
OpenSessionInViewFilter作为一个filter,会在request到达servlet之前拦截request。在OpenSessionInViewFilter中,首先会得到当前的sessionfactory,部分源码如下: protected SessionFactory lookupSessionFactory() { if (logger.isDebugEn...原创 2012-02-20 11:45:02 · 173 阅读 · 0 评论 -
HibernateTemplate 源码分析(二)
在Spring中使用Hibernate的方法:因为最终需要用到的就是DAO中HibernateTemplate的方法。所以最终的继承依赖关系如下。HibernateDaoSupport --->DAO---> HibernateTemplate--->sessionfactory--->datasource反应到工程中就是业务DAO 继承Hiberna...原创 2012-02-20 10:44:29 · 182 阅读 · 0 评论 -
threadlocal threadlocalMap 在hibernate spring中的应用
之前看资料,总说spring hibernate 是通过threadlocal来实现并发。更详细的就是session的产生是由threadlocal来实现并发控制,保证多线程安全。但是只看讲解,真是不理解,时时如鲠在喉。今狠下心看了下源码,终于自认为搞明白了。实际上[color=red]就是一个threadlocal实例变量,这个类有get,set方法,且这个方法的特殊之处就在于能得到...2012-02-16 16:45:53 · 159 阅读 · 0 评论 -
理解ThreadLocal
理解ThreadLocal .ThreadLocal是什么 早在JDK 1.2的版本中就提供java.lang.ThreadLocal,ThreadLocal为解决多线程程序的并发问题提供了一种新的思路。使用这个工具类可以很简洁地编写出优美的多线程程序。 ThreadLocal很容易让人望文生义,想当然地认为是一个“本地线程”。其实,ThreadLocal并不是...原创 2012-02-16 15:35:47 · 122 阅读 · 0 评论 -
Spring+Hibernate 之懒加载问题的解决
http://blog.youkuaiyun.com/aspdao/article/details/5472955原创 2012-02-15 17:30:11 · 144 阅读 · 0 评论 -
关于OpenSessionInView
关于OpenSessionInView .简而言之,就是通过filter拦截request,并在一开始就把session绑定到request的threadlocalmap中去。而关闭的时候,把session的关闭延迟到前台页面载入完毕,而不是后台处理完毕之后,到达前台之前。 [color=red]OpenSessionInView在request把session绑定到当前thre...原创 2012-02-15 16:49:08 · 155 阅读 · 0 评论 -
OpenSessionInViewFilter源码分析
OpenSessionInViewFilter源码分析 .在之前我写的一篇文章http://blog.youkuaiyun.com/aspdao/archive/2010/04/11/5472955.aspx详述了如何配置Hibernate懒加载 当时我觉得我已经会配置Hibernate的懒加载了,但是,在最近做的课题项目中,相同版本的SSH,一样的配置,却发现懒加载部分成功,...原创 2012-02-15 16:32:45 · 128 阅读 · 0 评论 -
浅谈hibernate性能优化的几点建议
浅谈hibernate性能优化的几点建议1、针对oracle数据库而言,Fetch Size 是设定JDBC的Statement读取数据的时候每次从数据库中取出的记录条数,一般设置为30、50、100。Oracle数据库的JDBC驱动默认的Fetch Size=15,设置Fetch Size设置为:30、50,性能会有明显提升,如果继续增大,超出100,性能提升不明显,反而会消耗内存。 ...原创 2012-05-17 16:41:19 · 130 阅读 · 0 评论 -
AAAAAAAAAAA
相信越来越多的web开发者,在持久层都采用了hibernate。都说hibernate效率高,可是当整个项目下来后发现,比其他持久层版本慢很多,当然功能也多很多。记得当初同事测试hibernate销率时,在100万数据量的情况下,hibernate的效率几乎接近于jdbc,那么为什么如今很多公司的项目运行那么慢呢(不仅仅是hibernate),也许有些细节上的东西我们开发人员没有注意。...原创 2012-05-17 16:22:15 · 421 阅读 · 0 评论 -
hibernate 效率问题总结
一、“精心编写”的JDBC一定是性能最好的 实际上,不管CMP,Hibernate,JDO等等,所有的ORM都是对JDBC的封装,CMP则是一个重量级封装,JDO中度封装,Hibernate是轻量级的封装。从理论上来说,ORM永远也不可能比JDBC性能好。就像任何高级语言的运行性能永远也不会好过汇编语言一个道理。 对于Create和Update操作来说,由于普通的Java程序员未必...原创 2012-05-17 16:14:16 · 158 阅读 · 0 评论 -
Hibernate 批量删除 问题
批量处理数据通常,在一个Session对象的缓存中只存放数量有限的持久化对象,等到Session对象处理事务完毕,还要关闭Session对象,从而及时释放Session的缓存占用的内存。批量处理数据是指在一个事务中处理大量数据。以下程序在一个事务中批量更新CUSTOMERS表中年龄大于零的所有记录的AGE字段:Transaction tx = session.beginTransa...原创 2012-05-17 15:24:23 · 147 阅读 · 0 评论 -
hibernate对象的三种状态及之间的转换 .
Hibernate的对象有3种状态,分别为:瞬时态(Transient)、持久态(Persistent)、脱管态(Detached)。处于持久态的对象也称为PO(Persistence Object),瞬时对象和脱管对象也称为VO(Value Object)。 瞬时态 由new命令开辟内存空间的java对象, eg. Person person = new...原创 2012-04-20 10:36:09 · 163 阅读 · 0 评论
分享