hibernate 3中的session接口的不同
hibernate3.2版本中session出现了2个
新session接口:org.hibernate.Session
老session接口:org.hibernate.classic.Session
顾名思义,classic包下的session就是以前常用的session,新的这个相比老的有很大变化。下边详细列出
1,去掉了所有的find方法
在新的session接口中没有find方法,而在老的session接口中把find全部注释成deprecated了。
2,去掉所有的saveOrUpdateCopy,使用merge代替,这是classic.Session注释中的一段原话.
/**
* Copy the state of the given object onto the persistent object with the same
* identifier. If there is no persistent instance currently associated with
* the session, it will be loaded. Return the persistent instance. If the
* given instance is unsaved or does not exist in the database, save it and
* return it as a newly persistent instance. Otherwise, the given instance
* does not become associated with the session.
*
* @deprecated use {@link org.hibernate.Session#merge(String, Object)}
*
* @param object a transient instance with state to be copied
* @return an updated persistent instance
*/
注意这句:@deprecated use {@link org.hibernate.Session#merge(String, Object)}
3,去掉了iterate方法
给出的注释是使用createQuery,自己获得iterate
4,去掉了filter方法
@deprecated use {@link #createFilter(Object, String)}.{@link Query#list}
给出的注释说用createFilter代替,实际就是自己从createFilter获得query然后自己查询
5,增加了一些方法
具体自己看api吧,主要是提供了一些新的功能。
总结:
从上边的改变不难看出hibernate对于接口的设定观念改变了。
以前的策略是:
尽量给出全的接口,这样减少用户的代码量,所以filter直接返回collection,iterate直接返回
iterate。但这样的结果是过度的提供接口,造成了学习上的负担和选择上的负担。如何记住这些函数,如何在众多函数
中选择是个麻烦事情。
凡是做java的都知道,用一个java的东西最辛苦的是选择,在开源的世界里边选择一个适合自己的工程,再在这个选择的工程里边选择实现方法
因为可能提供很多种实现方法,而且有些还是deprecated的。
现在的策略:
尽量简化接口,或减少函数,或者简化函数名,例如把saveOrUpdateCopy变成merge。
这样的好处是记忆学习负担少。多写几句代码不是特别麻烦。其实我个人来讲更喜欢现在的感觉。
以前的策略其实很大程度上是满足程序员的个人需求,更有成就感。但确不适合使用者的需求。
ok,无论如何现在的情况是更好了。
分享到:
相关推荐
Struts1.2、Spring2.5和Hibernate3.2是经典的Java企业级开发框架组合,它们各自在应用程序的不同层次上发挥着重要作用。Struts1.2是一个MVC(Model-View-Controller)框架,主要负责处理用户界面与业务逻辑之间的...
Hibernate3.2是一款广泛应用于Java开发中的开源对象关系映射(ORM)框架,它极大地简化了数据库操作,使得开发者能够用面向对象的方式处理数据。这个jar包是Hibernate3.2版本的核心组件,包含了所有必要的类库,使得...
Hibernate 3.2 是一个非常重要的Java持久化框架,它为开发者提供了强大的对象关系映射(ORM)功能,使得在Java应用中操作数据库变得更加简单。这个核心jar包包含了实现Hibernate功能所需的所有基本类和接口,是开发...
- Session接口:代表一次数据库会话,用于执行CRUD(Create, Read, Update, Delete)操作,它包含get()、save()、update()、delete()等方法。 - Criteria查询:提供了一种基于对象的查询方式,可以动态构建查询...
在 Hibernate 中,`Session` 接口是与数据库交互的主要接口,它负责对象的持久化操作。`Transaction` 管理数据库事务,确保数据的一致性。在 Hibernate 3.2 中,对这些接口进行了优化,提高了并发处理能力和事务管理...
Hibernate 3.2 是一个非常重要的版本,它是Java开发领域中流行的对象关系映射(ORM)框架之一。这个版本发布于2006年,带来了许多改进和新特性,极大地提升了开发人员在处理数据库操作时的效率和灵活性。以下是关于...
- **Session**:它是与数据库交互的前线接口,用于执行CRUD操作(创建、读取、更新和删除)。 - **Query和Criteria API**:这两者提供了执行查询的方法,包括HQL(Hibernate Query Language)和Criteria API。 - *...
标题 "some simple demo about hibernate3.2 and spring2.5" 暗示这是一个关于如何集成和使用 Hibernate 3.2 和 Spring 2.5 的简单演示项目。这两个库在Java开发中扮演着重要角色,Hibernate是流行的对象关系映射...
4. **Session接口**:Session是Hibernate的工作单元,它实现了对数据库的基本操作,如增删改查。Session内部管理着一级缓存,用于提高性能。 5. **Criteria查询**:除了HQL(Hibernate Query Language)外,...
在Hibernate 3.2版本中,它提供了许多改进和增强的功能,包括性能优化、对JPA(Java Persistence API)的支持以及对最新数据库版本的兼容性。 以下是一些关于Hibernate 3.2中关键知识点的详细解释: 1. **对象关系...
2. **配置文件**:在Hibernate 3.2中,通常会有一个`hibernate.cfg.xml`配置文件,用于设置数据库连接、缓存策略、实体类等信息。理解这些配置对于调试和优化应用至关重要。 3. **实体类(Entities)**:在...
在Hibernate 3.2版本中,开发者们能够更深入地理解其内部机制,从而提高开发效率和应用性能。本篇文章将详细解析Hibernate 3.2的核心功能和源代码结构。 一、Hibernate概览 Hibernate是Java社区中的明星项目,它...
- 支持JPA:Hibernate3.2开始支持Java Persistence API(JPA),这使得开发者可以在不放弃Hibernate强大功能的同时,利用JPA的标准接口进行开发。 - 改进的HQL和 Criteria API:增加了更多的功能和表达式,使得...
Struts2、Spring2.5和Hibernate3.2是Java Web开发中经典的三大框架,它们的整合使用在过去的许多年里被广泛应用于企业级应用系统。这个完整的项目提供了从开发环境到运行环境的所有必要组件,包括数据库脚本,使得...
3. Session:是Hibernate的主要工作接口,它负责与数据库进行交互,包括CRUD操作和事务管理。 4. Transaction:Hibernate提供了基于JTA和JDBC的事务管理,确保数据的一致性。 5. Entity:持久化对象,通过注解或XML...
2. **Session接口**:它是Hibernate的主要工作接口,提供了与数据库交互的方法,如保存、更新、删除对象以及执行HQL(Hibernate查询语言)查询。 3. **SessionFactory**:SessionFactory是一个线程安全的单例对象,...
《Hibernate3.2中文教程》是一份针对Java开发者的重要学习资源,主要讲解了如何使用Hibernate 3.2这个流行的持久化框架。Hibernate是Java平台上的一款开源对象关系映射(ORM)框架,它允许开发者用面向对象的方式来...
Session是Hibernate中与数据库交互的主要接口,负责对象的保存、更新和删除操作。Transaction则确保了数据的一致性,它是数据库操作的原子单元。这部分内容对于理解Hibernate如何处理并发和事务控制至关重要。 此外...
4. **Session接口**:它是Hibernate的主要工作单元,负责对象的保存、加载和更新。它提供了事务管理和缓存管理的功能。 5. **Criteria查询**:除了HQL(Hibernate Query Language)之外,Hibernate还提供了Criteria...
接下来,手册会详细介绍Session接口,它是Hibernate的主要工作接口,提供了对数据库的读写操作。Session的 CRUD(创建、读取、更新、删除)操作是通过Query和Criteria API实现的,这两种API允许开发者灵活地执行SQL...