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,无论如何现在的情况是更好了。
分享到:
相关推荐
Session接口是与数据库交互的主要入口,它提供了事务管理和缓存机制。 这个“Struts1.2 + Spring2.5 + Hibernate3.2框架demo”项目很可能包含以下组成部分: 1. **源代码**:包含Action类、DAO(数据访问对象)类...
2. **Session API**:Hibernate的核心接口`Session`,它是与数据库进行交互的主要入口。通过Session,你可以执行CRUD(创建、读取、更新、删除)操作,同时它还负责事务管理。 3. **查询语言(HQL)**:Hibernate...
- Session接口:代表一次数据库会话,用于执行CRUD(Create, Read, Update, Delete)操作,它包含get()、save()、update()、delete()等方法。 - Criteria查询:提供了一种基于对象的查询方式,可以动态构建查询...
3. **Session**:Session是与数据库交互的主要接口,它提供了保存、更新、删除对象以及执行HQL(Hibernate查询语言)的方法。Session还提供了事务管理的功能。 4. **Entity Classes and Mapping Files**:实体类是...
在深入探讨Hibernate 3.2的源码之前,我们需要理解ORM的基本概念。ORM将数据库中的表映射为Java对象,通过对象之间的关系来处理数据,避免了编写大量的SQL语句。Hibernate提供了丰富的API和配置选项,使得开发人员...
4. **Session 和 Transaction**:`SessionFactory`创建`Session`,`Session`是与数据库交互的主要接口,负责保存、更新和删除对象。事务管理是通过`Transaction`对象完成的,确保数据库操作的原子性和一致性。 5. *...
标题 "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)外,...
4. **Session**:Session 是与数据库交互的主要接口,提供了事务管理和数据持久化的功能。它支持CRUD(创建、读取、更新、删除)操作,并通过Transaction对象来管理事务。 5. **实体类(Entity)**:在Hibernate中...
Hibernate 3.2增加了对Java Persistence API(JPA)的支持,使得开发者可以选择使用标准的JPA接口,增强了与其他JPA实现的互操作性。 通过深入学习Hibernate 3.2的源代码,开发者不仅可以了解其实现原理,还能在...
2. **Session接口**:它是Hibernate的主要工作接口,提供了与数据库交互的方法,如保存、更新、删除对象以及执行HQL(Hibernate查询语言)查询。 3. **SessionFactory**:SessionFactory是一个线程安全的单例对象,...
Session是与数据库交互的主要接口,用于执行CRUD操作(创建、读取、更新、删除)。 5. **Criteria查询**:除了传统的HQL(Hibernate Query Language)查询,Hibernate 3.2还提供了Criteria API,这是一种更面向对象...
3. Session:是Hibernate的主要工作接口,它负责与数据库进行交互,包括CRUD操作和事务管理。 4. Transaction:Hibernate提供了基于JTA和JDBC的事务管理,确保数据的一致性。 5. Entity:持久化对象,通过注解或XML...
在 Hibernate 中,`Session` 接口是与数据库交互的主要接口,它负责对象的持久化操作。`Transaction` 管理数据库事务,确保数据的一致性。在 Hibernate 3.2 中,对这些接口进行了优化,提高了并发处理能力和事务管理...
它通过Hibernate.cfg.xml配置文件连接数据库,实体类(Entity)对应数据库表,属性对应字段,通过Session接口进行CRUD(创建、读取、更新、删除)操作。Hibernate的HQL(Hibernate Query Language)和Criteria API为...
**hibernate3.2 开发API+源码参考** Hibernate是一个开源的对象关系映射(ORM)框架,它允许开发者将Java对象与数据库中的表进行映射,从而简化了数据库操作。Hibernate3.2是其一个重要版本,它带来了许多改进和新...
4. **Session接口**:作为Hibernate的主要工作单元,Session负责对象的持久化操作,如保存、更新、删除和检索。讲解其生命周期、事务管理和并发控制。 5. **Query与Criteria API**:介绍HQL(Hibernate Query ...
**hibernate3.2 API** 是一个针对Java开发者的重要框架,主要用于简化对象关系映射(ORM)的工作,使得在Java应用中操作数据库变得更加便捷。这个API提供了丰富的接口和类,帮助开发者将业务对象和数据库表之间的...
Hibernate 3.2支持一级缓存(Session级)和二级缓存(SessionFactory级),通过CacheProvider和QueryCacheManager等类实现。源码中,我们可以探索缓存策略如何提高数据访问效率。 7. **集合映射** Hibernate支持...
Session是与数据库交互的主要接口,而Query则提供了对SQL的面向对象的封装。 二、配置与初始化 在Hibernate-3.2中,配置文件通常为`hibernate.cfg.xml`,包含了数据库连接信息、实体类映射、缓存策略等设置。通过`...