Blog信息 |
blog名称: 日志总数:1304 评论数量:2242 留言数量:5 访问次数:7601295 建立时间:2006年5月29日 |

| |
[Hibernate]Hibernate的缓存机制介绍 软件技术
lhwork 发表于 2006/7/10 11:12:44 |
缓存是介于应用程序和物理数据源之间,其作用是为了降低应用程序对物理数据源访问的频次,从而提高了应用的运行性能。缓存内的数据是对物理数据源中的数据的复制,应用程序在运行时从缓存读写数据,在特定的时刻或事件会同步缓存和物理数据源的数据。
缓存的介质一般是内存,所以读写速度很快。但如果缓存中存放的数据量非常大时,也会用硬盘作为缓存介质。缓存的实现不仅仅要考虑存储的介质,还要考虑到管理缓存的并发访问和缓存数据的生命周期。
Hibernate的缓存包括Session
阅读全文(1720) | 回复(0) | 编辑 | 精华 | 删除 |
| | |
[Hibernate]不要重复DAO!使用Hibernate 和Spring AOP 构建泛型类型安全的DAO 软件技术
lhwork 发表于 2006/7/10 11:11:27 |
由于 Java™ 5 泛型的采用,有关泛型类型安全 Data Access Object (DAO)
实现的想法变得切实可行。在本文中,系统架构师 Per Mellqvist 展示了基于 Hibernate 的泛型 DAO
实现类。然后展示如何使用 Spring AOP introductions 将类型安全接口添加到类中以便于查询执行。
对于大多数开发人员,为系统中的每个 DAO 编写几乎相同的代码到目前为止已经成为一种习惯。虽然所有人都将这种重复标识为
“代码味道”,但我们大多数都已经学 |
|
[Hibernate]Hibernate 3 的Formulas 软件技术
lhwork 发表于 2006/7/10 11:10:06 |
原文地址: http://www.onjava.com/pub/a/onjava/2005/08/03/hibernate.html 中文地址: http://www.matrix.org.cn/resource/article/43/43813_Hibernate_Formulas.html 关 |
|
[Hibernate]解决Hibernate 3不支持 "&" 运算的SQL语句 软件技术
lhwork 发表于 2006/7/10 11:09:04 |
按位与运算(&)在许多数据库中都是支持的,遗憾的是,Hibernate 3在HQL中不支持&运算,如果你写了如下的HQL:
where a.id & :mask = :target
则Hibernate报错:exception: unexpected char: '&'.
如何解决此问题?方法是利用Hibernate支持的自定义SQLFunction,定义一个bitand(a,b)的SQLFunction,然后,自己写一个解释器,生成a & b的SQL语句。
要实现一个自定义的SQLFunction,必须实现SQLFunction接口:
/** * for more information, please visit |
|
[Hibernate]Hibernate 3.2 SQL函数返回类型从Integer变为Long 软件技术
lhwork 发表于 2006/7/10 11:07:06 |
如果你从Hibernate 3.0.x/3.1.x升级到最新的3.2版,一定要注意,3.2版的很多sql函数如count(), sum()的唯一返回值已经从Integer变为Long,如果不升级代码,会得到一个ClassCastException。
这个变化主要是为了兼容JPA,可以在hibernate.org的最新文档中找到说明。
Hibernate Team也提供了一个与原来兼容的解决方案:
Configuration classicCfg = new Configuration(); classicCfg.addSqlFunction( "count", new ClassicCountFunction()); |
|
[Hibernate]OpenSessionInView会不会影响性能 软件技术, 电脑与网络
lhwork 发表于 2006/7/6 14:56:33 |
假设WebWork+Hibernate+FreeMarker架构模型是这样的
Request | |---other filters... | |---OpenSessionInView Filter | |-----WebWork Controller | |---Action | |---FreeMarker Result(对response.getWriter()做process()操作) | | |---OpenSessionInView Filter | |---other filters... | Request
这里有两种情况。
一是页面缓冲区足够大,足够一次性容纳所有的页面,这样渲染页面就会一次性进入缓冲区,然后返回到OpenSessionInVie |
|
[Hibernate]hibernate调用mysql5.0存储过程小记 软件技术, 电脑与网络
lhwork 发表于 2006/7/1 21:39:23 |
准备工作: 1.hibernate3 到这下载hibernate3:http://sourceforge.net/project/showfiles.phpgroup_id=40712&package_id=127784&release_id=403223 2.mysql (注意一定要用mysql5.0和最新驱动) mysql官方网站http://www.mysql.com/
| |
[Hibernate]Hibernate 延迟初始化错误(ERROR LazyInitializer)是如何产生的? 软件技术, 电脑与网络
lhwork 发表于 2006/6/28 11:18:05 |
摘要: 延迟初始化错误是运用Hibernate开发项目时最常见的错误。如果对一个类或者集合配置了延迟检索策略,那么必须当代理类实例或代理集合处于持久化状态(即处于Session范围内)时,才能初始化它。如果在游离状态时才初始化它,就会产生延迟初始化错误。
延迟初始化错误(ERROR LazyInitializer)是如何产生的?
选自<<精通Hibernate:Java对象持久化技术详解>> 作者:孙卫琴 来源:www.javathinker.org
延迟初始化错误是运用Hibernate开发项目时最常见的错误。如果对一个类或者集合配置了延迟检索策略,那么必须当代理类实例或代理集合处于持久化状态(即处于Session范围内)时,才能初始化它。如果在游离状态时才初始化它,就会产生延迟初始化错误。
下面把Customer.hbm.xml文件的<class>元素的lazy属性设为true,表示使用延迟检索策略: <class name="mypack.Custome |
|
|