`
txf2004
  • 浏览: 7076052 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

翻译的Hibernate的Session的javadoc

阅读更多

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(Objectobject)
检查这个对象实例是否与当前的Session关联(即是否为Persistent状态)。

Criteria

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

Criteria

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

Criteria

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

Criteria

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

Query

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

Query

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

SQLQuery

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

void

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

void

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

void

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

Connection

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

Filter

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

void

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

void

flush()
强制提交刷新(flushSession

Object

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

Object

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

Object

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

Object

get(StringentityName, Serializableid, LockModelockMode)
返回与给定的实体类和标识所匹配的持久化实例,如果没有对应的持久化实例则返回null

CacheMode

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

LockMode

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

Filter

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

EntityMode

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

String

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

FlushMode

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

Serializable

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

Query

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

Session

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

SessionFactory

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

SessionStatistics

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

Transaction

getTransaction()
获取与这个EN-U

分享到:
评论

相关推荐

    Hibernate的Session的javadoc

    Hibernate的Session接口是Java应用程序与Hibernate之间主要的运行时交互接口,它提供了对持久化对象的创建、读取和删除操作...对于初学者来说,阅读Hibernate的javadoc是非常有益的,可以避免因概念模糊而引发的错误。

    hibernate javadoc 4.2.1

    `hibernate javadoc 4.2.1`是Hibernate 4.2.1版本的API文档,提供了详细的英文说明,帮助开发者理解和使用该版本的Hibernate框架。 在Hibernate 4.2.1中,主要包含以下几个核心知识点: 1. **实体管理**:...

    hibernate api 3.6.0 javadoc

    《Hibernate API 3.6.0 Javadoc:深入理解与应用》 Hibernate,作为一个流行的Java对象关系映射(ORM)框架,极大地简化了Java开发者在数据库操作中的工作。它的3.6.0版本是一个重要的里程碑,引入了许多改进和增强...

    Hibernate4.0.1_javadoc

    通过阅读"Hibernate4.0.1_javadoc"中的英文API文档,开发者可以详细了解每个类、接口和方法的用途及用法,从而更好地理解和利用Hibernate的功能。这些文档是开发过程中不可或缺的参考资料,能够帮助开发者避免常见...

    hibernate文档(完整)

    2. **API文档**:包含了Hibernate的Javadoc,这是开发者查阅API接口、方法和类的重要参考资料,有助于理解和使用各种API。 3. **示例项目**:可能包含了一些演示如何使用Hibernate的项目,这些项目通常包含配置文件...

    hibernate帮助文档

    2. **Session API**: Hibernate的Session接口是与数据库进行交互的主要接口,它提供了增删改查(CRUD)操作,并负责事务管理和缓存管理。 3. **Criteria 查询**: 除了传统的HQL(Hibernate Query Language)查询,...

    hibernate框架源码

    例如,你可以看到Hibernate如何通过Session接口处理数据库交互,怎样使用Criteria API或HQL(Hibernate Query Language)进行查询,以及实体类如何被映射到数据库表等。 `build.bat`和`build.sh`是构建脚本,通常...

    Hibernate 3.6.10 final Release

    7. **强大的API**:包括Session、SessionFactory等接口,为开发者提供了全面的数据库操作工具。 ### lib 文件夹 在`lib`文件夹中,包含了一系列Hibernate所需的库文件,可能包括以下组件: 1. **hibernate-core.jar...

    hibernate-distribution-3.3.2.GA-dist

    这个压缩包中不仅有运行时所需的jar文件,还包含了详细的API文档——javadoc,这对于开发者理解和使用Hibernate提供了极大的便利。 Hibernate的核心功能在于对象关系映射,它允许开发者以面向对象的方式来处理...

    hibernate

    在JDK5.0之前,xdoclet是处理Hibernate映射文件(hbm.xml)的主要工具,因为它可以直接从Javadoc注释中生成这些文件,大大简化了开发过程。 ##### 2.2 xdoclet与Hibernate映射 - **Hibernate Template**: Eclipse...

    hibernate-distribution-3.3.2.GA

    这部分主要包括了Hibernate的实体管理和事务处理功能,如Session接口、Transaction接口等,用于处理数据库的CRUD(创建、读取、更新、删除)操作。此外,它还支持对象的状态管理,包括瞬时状态、持久化状态、托管...

    hibernate配置要点详谈

    - **XDoclet**:这是一种工具,可以用来基于Java代码中的Javadoc注释自动生成Hibernate映射文件。这有助于减少手动编写XML的工作量。 #### 四、HQL查询语言 - HQL(Hibernate Query Language)子句本身大小写无关...

    hibernate-core-4.3.5.final-javadocs-chm

    **标题解析:**"hibernate-core-4.3.5.Final-javadocs-chm" 是 Hibernate 框架核心模块的 4.3.5 最终版本的 Java 文档(Javadoc)的 CHM(Compiled HTML Help)格式文件。这个标题表明我们关注的是 Hibernate 的核心...

    JBuilder2006配置Hibernate

    - 创建DAO类,用来封装对数据库的CRUD操作,使用Hibernate的`SessionFactory`和`Session`接口进行数据库交互。 - 理解并正确处理事务管理,例如使用`Transaction`对象进行事务控制。 6. **测试与运行** - 编写...

    Hibernate使用技巧汇总

    - 提供了对Hibernate Template的支持,简化了Hibernate Session的操作。 - 实现了Hibernate Template和SessionFactory的关联。 - **Spring配置**: - 在Spring配置文件中可以移植整个`hibernate.cfg.xml`的内容,...

    spring mvc hibernate jar包

    它提供了Session接口,是与数据库交互的主要入口,支持对象的持久化、查询和事务管理。 2. **Lucene** - `lucene-core-6.3.0.jar` 和 `lucene-analyzers-common-6.3.0.jar` Lucene是Apache的一个全文检索库,可...

    Hibernate_DEV_GUIDE

    - **XDoclet与Hibernate映射**:XDoclet是一个源码注释处理器,它可以生成各种类型的文档或源代码,如Javadoc、XML文件等。在Hibernate中,它常用来生成映射文件。 - **数据检索**:包括使用`CriteriaQuery`和`...

    Hibernate基础知识

    Hibernate的核心接口包括Configuration、SessionFactory、Session、Transaction、Query和Criteria等。 - **Configuration**:用于加载Hibernate的配置信息,包括数据库连接参数、映射文件路径等。 - **...

    MyEclipse生成的struts-2.3.30-all javadoc

    8. **ActionContext**: 保存了请求上下文中的所有信息,如Action上下文、session、request和response对象,以及OGNL表达式解析时需要的上下文变量。 9. ** strut2-core 包**: 这个核心包包含了Struts 2框架的主要类...

Global site tag (gtag.js) - Google Analytics