`

Hibernate Session API中文翻译

阅读更多

org.hibernate
Interface Session

All Superinterfaces:

Serializable

All Known Subinterfaces:

EventSource, Session

All Known Implementing Classes:

SessionImpl

public interface Session

extends Serializable

Java应用程序与Hibernate之间的主要运行时接口。它是抽象了持久化服务概念的核心抽象API类。
Session
的生命周期绑定在一个物理的事务(tansaction)上面。(长的事务可能跨越多个数据库事物。)
Session
的主要功能是提供对映射的实体类实例的创建,读取和删除操作。实例可能以下面三种状态存在:
自由状态(transient: 不曾进行持久化,未与任何Session相关联
持久化状态(persistent: 仅与一个Session相关联
游离状态(detached: 已经进行过持久化,但当前未与任何Session相关联

游离状态的实例可以通过调用save()persist()或者saveOrUpdate()方法进行持久化。持久化实例可以通过调用 delete()变成游离状态。通过get()load()方法得到的实例都是持久化状态的。游离状态的实例可以通过调用 update()0saveOrUpdate()lock()或者replicate()进行持久化。游离或者自由状态下的实例可以通过调用merge()方法成为一个新的持久化实例。

 

save()persist()将会引发SQLINSERTdelete()会引发SQLDELETE,而update()merge()会引发SQLUPDATE。对持久化(persistent实例的修改在刷新提交的时候会被检测到,它也会引起SQLUPDATEsaveOrUpdate()或者replicate()会引发SQLINSERT或者UPDATE

其具体实现并不一定是线程安全的。每个线程/事务应该从一个SessionFactory获取自己的session实例。
如果其持久化对象类是可序列化的,则Session实例也是可序列化的。
一个典型的事务应该使用下面的形式:

Session sess = factory.openSession();

Transaction tx;

try {

tx = sess.beginTransaction();

//do some work ... tx.commit();

}

catch (Exception e) {

if (tx!=null) tx.rollback();

 throw e;

}

finally {

sess.close();

 }

如果Session抛出了异常, 事务必须回滚而session会被废弃。在异常发生后Session的内部状态可能会与数据库失去同步。

Author:   Gavin King               See Also: SessionFactory

 

Method Summary

 Transaction

beginTransaction()
          
开始一个工作单元并且返回相关联的事务(Transaction)对象。

 void

cancelQuery()
          
终止执行当前查询。

 void

clear()
          
完整的清除这个session

 Connection

close()
          
停止这个Session,通过中断JDBC连接并且清空(cleaning up)它。

 Connection

connection()
       
获取这个SessionJDBC连接。

如果这个session使用了积极的collection释放策略(如CMT-容器控制事务的环境下),关闭这个调用的连接的职责应该由当前应用程序负责。

 boolean

contains(Object object)
          
检查这个对象实例是否与当前的Session关联(即是否为Persistent状态)。

 Criteria

createCriteria(Class persistentClass)
          
为给定的实体类或它的超类创建一个新的Criteria实例。

 Criteria

createCriteria(Class persistentClass, String alias)
          
根据给定的实体类或者它的超类创建一个新的Criteria实例,并赋予它(实体类)一个别名。

 Criteria

createCriteria(String entityName)
          
根据给定的实体的名称(name),创建一个新的Criteria实例。

 Criteria

createCriteria(String entityName, String alias)
          
根据给定的实体的名称(name),创建一个新的Criteria实例,并赋予它(实体类)一个别名

 Query

createFilter(Object collection, String queryString)
          
根据给定的collection和过滤字符串(查询条件)创建一个新的Query实例。

 Query

createQuery(String queryString)
          
根据给定的HQL查询条件创建一个新的Query实例。

 SQLQuery

createSQLQuery(String queryString)
          
根据给定的SQL查询条件创建一个新的SQLQuery实例。

 void

delete(Object object)
          
从数据库中移除持久化(persistent)对象的实例。

 void

delete(String entityName, Object object)
          
从数据库中移除持久化(persistent)对象的实例。

 void

disableFilter(String filterName)
          
禁用当前session的名称过滤器。

 Connection

disconnect()
          
断开Session与当前的JDBC连接。

 Filter

enableFilter(String filterName)
          
打开当前session的名称过滤器。

 void

evict(Object object)
          
将当前对象实例从session缓存中清除。

 void

flush()
          
强制提交刷新(flushSession

 Object

get(Class clazz, Serializable id)
          
根据给定标识和实体类返回持久化对象的实例,如果没有符合条件的持久化对象实例则返回null

 Object

get(Class clazz, Serializable id, LockMode lockMode)
          
根据给定标识和实体类返回持久化对象的实例,如果没有符合条件的持久化对象实例则返回null

 Object

get(String entityName, Serializable id)
          
返回与给定的实体命名和标识匹配的持久化实例,如果没有对应的持久化实例则返回null

 Object

get(String entityName, Serializable id, LockMode lockMode)
          
返回与给定的实体类和标识所匹配的持久化实例,如果没有对应的持久化实例则返回null

 CacheMode

getCacheMode()
          
得到当前的缓存模式。

 LockMode

getCurrentLockMode(Object object)
          
检测给定对象当前的锁定级别。

 Filter

getEnabledFilter(String filterName)
          
根据名称获取一个当前允许的过滤器(filter)。

 EntityMode

getEntityMode()
          
获取这个session有效的实体模式。

 String

getEntityName(Object object)
          
返回一个持久化对象的实体名称。

 FlushMode

getFlushMode()
          
获得当前的刷新提交(flush)模式。

 Serializable

getIdentifier(Object object)
          
获取给定的实体对象实例在Session的缓存中的标识,如果该实例是自由状态(Transient)的或者与其它Session关联则抛出一个异常。

 Query

getNamedQuery(String queryName)
          
从映射文件中根据给定的查询的名称字符串获取一个Query(查询)实例。

 Session

getSession(EntityMode entityMode)
          
根据给定的实体模式(Entity Mode)开始一个新的有效的Session

 SessionFactory

getSessionFactory()
          
获取创建这个sessionSessionFactory实例。

 SessionStatistics

getStatistics()
          
获取这个session的统计信息。

 Transaction

getTransaction()
          
获取与这个session关联的Transaction(事务)实例。 instance associated with this session.

 boolean

isConnected()
          
检查当前Session是否处于连接状态。

 boolean

isDirty()
          
当前Session是否包含需要与数据库同步的(数据状态)变化 ?如果我们刷新提交(flush)这个session是否会有SQL执行?

 boolean

isOpen()
          
检查当前Session是否仍然打开。

 Object

load(Class theClass, Serializable id)
          
在符合条件的实例存在的情况下,根据给定的实体类和标识返回持久化状态的实例。

 Object

load(Class theClass, Serializable id, LockMode lockMode)
          
在符合条件的实例存在的情况下,根据给定的实体类、标识及指定的锁定等级返回持久化状态的实例。

 void

load(Object object, Serializable id)
          
将与给定的标示对应的持久化状态(值)复制到给定的自由状态(trasient)实例上。

 Object

load (String entityName, Serializable id)
          
在符合条件的实例存在的情况下,根据给定的实体类和标识返回持久化状态的实例。

 Object

load (String entityName, Serializable id, LockMode lockMode)
          
在符合条件的实例存在的情况下,根据给定的实体类、标识及指定的锁定等级返回持久化状态的实例。

 void

lock(Object object, LockMode lockMode)
          
从给定的对象上获取指定的锁定级别。

 void

lock(String entityName, Object object, LockMode lockMode)
          
从给定的对象上获取指定的锁定级别。

 Object

merge(Object object)
          
将给定的对象的状态复制到具有相同标识的持久化对象上。

 Object

merge(String entityName, Object object)
          
将给定的对象的状态复制到具有相同标识的持久化对象上。

 void

persist(Object object)
          
将一个自由状态(transient)的实例持久化。

 void

persist(String entityName, Object object)
          
将一个自由状态(transient)的实例持久化。

 void

reconnect()
         
不推荐的。 手工的重新连接只应用于应用程序提供连接的情况,在这种情况下或许应该使用reconnect(java.sql.Connection)

 void

reconnect(Connection connection)
          
重新连接到给定的JDBC连接。

 void

refresh(Object object)
          
从数据库中重新读取给定实例的状态。

 void

refresh(Object object, LockMode lockMode)
          
根据指定的锁定模式(LockMode),从数据库中重新读取给定实例的状态。

 void

replicate(Object object, ReplicationMode replicationMode)
          
使用当前的标识值持久化给定的游离状态(Transient)的实体。

 void

replicate(String entityName, Object object, ReplicationMode replicationMode)
          
使用当前的标识值持久化给定的游离状态(Transient)的实体。

 Serializable

save(Object object)
          
首先为给定的自由状态(Transient)的对象(根据配置)生成一个标识并赋值,然后将其持久化。

 Serializable

save(String entityName, Object object)
          
首先为给定的自由状态(Transient)的对象(根据配置)生成一个标识并赋值,然后将其持久化。

 void

saveOrUpdate(Object object)

根据给定的实例的标识属性的值(注:可以指定unsaved-value。一般默认null。)来决定执行 save() update()操作。

 void

saveOrUpdate(String entityName, Object object)
          
根据给定的实例的标识属性的值(注:可以指定unsaved-value。一般默认null。)来决定执行 save() update()操作。

 void

setCacheMode(CacheMode cacheMode)
          
设置刷新提交模式。

 void

setFlushMode(FlushMode flushMode)
          
设置刷新提交模式。

 void

setReadOnly(Object entity, boolean readOnly)
          
将一个未经更改的持久化对象设置为只读模式,或者将一个只读对象标记为可以修改的模式。

 void

update(Object object)
          
根据给定的detached(游离状态)对象实例的标识更新对应的持久化实例。

 void

update(String entityName, Object object)
          
根据给定的detached(游离状态)对象实例的标识更新对应的持久化实例。

分享到:
评论

相关推荐

    Hibernate 中文api 等学习资料

    描述中的"hibernate orm框架api中文文档,学习资料,框架详解资料"进一步明确了这些资源的性质,即它们是关于Hibernate ORM框架的API文档、学习教程以及框架的详细解释,都是中文版本,方便中文读者学习。...

    hibernate3.3 api中文

    这款“hibernate3.3 api中文”文档为学习 Hibernate 提供了宝贵的中文资源,帮助开发者理解和应用 Hibernate 的各种功能。 首先,让我们深入了解一下Hibernate的核心概念。ORM是Hibernate的核心思想,它消除了传统...

    Hibernate3.3 API中文版

    《Hibernate 3.3 API中文版》是针对Java开发者的重要参考资料,它详尽地阐述了Hibernate 3.3版本的API接口和功能。Hibernate作为一款流行的Object-Relational Mapping(ORM)工具,极大地简化了Java应用程序与关系...

    Hibernate-nosession

    nosession模式并不意味着完全不使用Hibernate,而是尽量减少对Session的依赖,转而使用其他API,例如Query或Criteria API来执行数据库查询。 在实际的代码案例中,我们可以利用SessionFactory的openSession()方法来...

    java Hibernate 中文API文档

    这个中文API文档是开发者在使用Hibernate进行开发时的重要参考资料,提供了详细的类、接口和方法描述,使得理解并应用Hibernate更加容易。下面将详细阐述Hibernate的核心概念和主要功能。 1. **对象关系映射(ORM)...

    Hibernate中文Api最新参考文档

    **Hibernate中文API最新参考文档** Hibernate是一个开源的对象关系映射(ORM)框架,它为Java开发者提供了方便的数据持久化服务,使得开发人员可以使用面向对象的方式来操作数据库,而无需关心底层SQL语句的编写。...

    Hibernate 中文api文档

    **Hibernate 框架概述** ...总结,Hibernate中文API文档为开发者提供了详细的操作指南和参考,涵盖了从配置到使用的全过程,帮助理解和掌握Hibernate的各种特性和用法,是学习和使用Hibernate的重要资源。

    Hibernate Session释放模式

    在Java的持久化框架Hibernate中,Session对象是与数据库交互的核心组件,它负责管理对象的持久状态。在处理大量数据或者长时间运行的事务时,合理地管理Session的生命周期至关重要,这就涉及到了Hibernate的Session...

    Hibernate 中文api文档下载.zip_API_Hibernate API _hibernate api

    《Hibernate中文API文档详解》 Hibernate,作为Java领域中的一款著名对象关系映射(ORM)框架,极大地简化了数据库操作,使得开发者可以更加专注于业务逻辑而不是底层的数据存储。本篇将详细解读Hibernate中文API...

    《Hibernate 3 API参考手册》-电子文档下载(PDF)

    在描述中提到的“配合Hibernate 3中文参考使用”,意味着此手册可能包含有中文翻译或注释,这对于中文使用者来说是极大的便利,能够帮助他们更好地理解和应用Hibernate 3的API。 关于Hibernate 3 API,它是...

    hibernate4 api chm格式,真正的api,绝非帮助文档……

    《Hibernate 4.0.1 API详解》 Hibernate是一个开源的对象关系映射(ORM)框架,它极大地简化了Java应用程序与数据库之间的交互。这个API文档是针对Hibernate 4.0.1版本的,包含了所有核心类和接口的详细说明,为...

    hibernate3 中文API

    **Hibernate 3中文API详解** Hibernate 3是一个流行的开源对象关系映射(ORM)框架,它为Java开发者提供了在数据库上操作对象的便捷方式。这个API文档是专门为那些使用中文作为主要语言的学习者设计的,使得理解...

    Hibernate api

    Hibernate API 是一个强大的Java持久化框架,用于简化数据库操作,它是对象关系映射(ORM)工具的代表之一。这个框架允许开发者用面向对象的方式处理数据,而无需直接编写SQL语句,大大提高了开发效率和代码的可维护...

    hibernate中文API

    这个"hibernate中文API"包含了对Hibernate框架核心功能和用法的详细说明,是学习和使用Hibernate的重要参考资料。 1. **Hibernate概述** - ORM概念:对象关系映射技术是将传统的关系型数据库与面向对象编程语言...

    hibernate-api

    【hibernate-api】是Java开发中非常重要的一个组件,它是Hibernate ORM框架的核心API,用于在Java应用程序中管理和操作数据库。Hibernate是一个强大的、开放源代码的对象关系映射(ORM)框架,它极大地简化了Java与...

    hibernate3 api

    Hibernate3 API 手册是开发者在使用Hibernate进行数据库交互时的重要参考资料,它详细解释了各种接口、类和方法的用法。 一、Hibernate核心API 1. Session接口:它是与数据库进行交互的主要接口,提供了持久化对象...

    Hibernate(session管理)

    本文将深入探讨Hibernate中的核心概念——Session管理。 首先,理解Session在Hibernate中的角色至关重要。Session是Hibernate的主要工作单元,它是应用程序与数据库之间的桥梁。它负责保存、检索和更新Java对象,...

    hibernate3.2API

    1. **核心API**:这是Hibernate的核心部分,包括`SessionFactory`、`Session`、`Transaction`等关键接口和类。`SessionFactory`是创建`Session`对象的工厂,`Session`负责实际的数据库操作,而`Transaction`则用于...

    hibernate和session学习

    4. `query()`: 通过HQL(Hibernate Query Language)或Criteria API执行查询操作,HQL是面向对象的查询语言,类似于SQL,但更加面向Java对象。 下面是一个简单的使用示例: ```java SessionFactory sessionFactory...

    hibernate api 中文

    这个"hibernate api 中文"文档包含了对Hibernate API的详细解释,帮助开发者理解并有效地使用这个框架。本文将深入探讨Hibernate API的核心概念、关键组件以及它们在实际应用中的作用。 一、Hibernate核心概念 1. ...

Global site tag (gtag.js) - Google Analytics