`
androider
  • 浏览: 748418 次
  • 性别: Icon_minigender_1
  • 来自: 苏州
社区版块
存档分类
最新评论

hibernateStatelessSession (无状态session)接口

阅读更多
StatelessSession (无状态session)接口

作为选择,Hibernate提供了基于命令的API,可以用detached object的形式把数据以流的方法加入到数据库,或从数据库输出。StatelessSession没有持久化上下文,也不提供多少高层的生命周期语义。特别是,无状态session不实现第一级cache,也不和第二级缓存,或者查询缓存交互。它不实现事务化写,也不实现脏数据检查。用stateless session进行的操作甚至不级联到关联实例。stateless session忽略集合类(Collections)。通过stateless session进行的操作不触发Hibernate的事件模型和拦截器。无状态session对数据的混淆现象免疫,因为它没有第一级缓存。无状态session是低层的抽象,和低层JDBC相当接近。
StatelessSession session = sessionFactory.openStatelessSession();
Transaction tx = session.beginTransaction();
   
ScrollableResults customers = session.getNamedQuery("GetCustomers")
    .scroll(ScrollMode.FORWARD_ONLY);
while ( customers.next() ) {
    Customer customer = (Customer) customers.get(0);
    customer.updateStuff(...);
    session.update(customer);
}
   
tx.commit();
session.close();


注意在上面的例子中,查询返回的Customer实例立即被脱管(detach)。它们与任何持久化上下文都没有关系。
StatelessSession 接口定义的insert(), update() 和 delete()操作是直接的数据库行级别操作,其结果是立刻执行一条INSERT, UPDATE 或 DELETE 语句。因此,它们的语义和Session 接口定义的save(), saveOrUpdate() 和delete() 操作有很大的不同。
分享到:
评论

相关推荐

    SSH笔记-管理Session和批量操作数据库

    - StatelessSession 不维护任何会话状态,不支持缓存,适用于只读或大量插入、更新等无状态操作,性能优于常规Session。 - 通过`SessionFactory.openStatelessSession()`创建StatelessSession,使用`batchSize`...

    Hibernate api

    10. **StatelessSession**: 虽然Session是主要的工作接口,但Hibernate也提供了无状态的Session(StatelessSession),不跟踪对象状态,适合进行大量数据的批量操作,性能更优,但不支持缓存和事务。 了解和熟练...

    EJB3.0开发Session Bean.rar

    - **无状态Session Bean (Stateless Session Bean)**:每个客户端请求都会创建一个新的实例,不保存任何客户端状态,适合执行计算任务或事务操作。 - **有状态Session Bean (Stateful Session Bean)**:每个客户端...

    关于hibernate的批处理

    7. **StatelessSession**: 对于仅需插入或更新大量数据的场景,StatelessSession比普通Session更合适,因为它不维护任何实体状态,没有缓存,效率更高。 8. **Batch fetching**: Hibernate的批处理加载机制(批获取...

    Hibernate学习.pdf

    - **STATELESS SESSION(无状态SESSION)接口**: 适用于只读操作。 #### 13. HQL - **HQL (Hibernate Query Language)**: 类似于SQL的语言,用于查询持久化对象。 #### 14. 条件查询 - **条件查询**: 在HQL或SQL中...

    hibernate 4.1.5 source code

    源码中,Session的实现类`StatelessSession`和`SessionImpl`分别对应无状态和有状态的会话。 3. Entity Manager:在JPA支持下,`EntityManager`是操作实体的主要接口,源码中通过`EntityManagerFactory`创建,与...

    Hibernate Developer Guide

    StatelessSession用于执行简单的读写操作,不会维护持久性上下文。 ##### 4.4 Hibernate查询语言DML **4.1.1 HQL的更新和删除** Hibernate Query Language (HQL)支持执行更新和删除操作。 **10/24/11. HQL语法...

    精通 Hibernate:Java 对象持久化技术详解(第2版).part2

     3.5.2 访问Hibernate的Session接口  3.6 运行helloapp应用  3.6.1 创建运行本书范例的系统环境  3.6.2 创建helloapp应用的目录结构  3.6.3 把helloapp应用作为独立应用程序运行  3.6.4 把helloapp应用作为...

    Hibernate+中文文档

    13.3. StatelessSession (无状态session)接口 13.4. DML(数据操作语言)风格的操作(DML-style operations) 14. HQL: Hibernate查询语言 14.1. 大小写敏感性问题 14.2. from子句 14.3. 关联(Association)与连接...

    Hibernate API

    - **StatelessSession**: 不维护对象状态,适合大量读取或更新操作。 - **Native SQL**: 直接执行SQL,当HQL或Criteria API不能满足需求时使用。 - **Custom Types**: 自定义类型处理,扩展Hibernate对特殊数据类型...

    ejb调用详解

    此外,无状态会话Bean(Stateless Session Bean)和有状态会话Bean(Stateful Session Bean)的管理也变得更加简单。 **二、远程调用EJB** 远程调用EJB通常涉及到以下几个步骤: 1. **创建EJB接口**:定义EJB的...

    javaEE面试题.docx

    - Stateless Session Bean(无状态会话Bean)不保存任何客户端状态,每次调用都是独立的,适合处理无状态的事务。 5. 其他Java EE面试可能涉及的主题: - MVC设计模式:Model-View-Controller架构,用于分离应用...

    HibernateAPI中文版.chm

    13.3. StatelessSession (无状态session)接口 13.4. DML(数据操作语言)风格的操作(DML-style operations) 14. HQL: Hibernate查询语言 14.1. 大小写敏感性问题 14.2. from子句 14.3. 关联(Association)与连接...

    hibernate3.2中文文档(chm格式)

    13.3. StatelessSession (无状态session)接口 13.4. DML(数据操作语言)风格的操作(DML-style operations) 14. HQL: Hibernate查询语言 14.1. 大小写敏感性问题 14.2. from子句 14.3. 关联(Association)与连接...

    精通 Hibernate:Java 对象持久化技术详解(第2版).part4

     3.5.2 访问Hibernate的Session接口  3.6 运行helloapp应用  3.6.1 创建运行本书范例的系统环境  3.6.2 创建helloapp应用的目录结构  3.6.3 把helloapp应用作为独立应用程序运行  3.6.4 把helloapp应用作为...

    精通 Hibernate:Java 对象持久化技术详解(第2版).part3

     3.5.2 访问Hibernate的Session接口  3.6 运行helloapp应用  3.6.1 创建运行本书范例的系统环境  3.6.2 创建helloapp应用的目录结构  3.6.3 把helloapp应用作为独立应用程序运行  3.6.4 把helloapp应用作为...

    Hibernate中文详细学习文档

    13.3. StatelessSession (无状态session)接口 13.4. DML(数据操作语言)风格的操作(DML-style operations) 14. HQL: Hibernate查询语言 14.1. 大小写敏感性问题 14.2. from子句 14.3. 关联(Association)与连接...

    精通 Hibernate:Java 对象持久化技术详解(第2版).part1.rar

     3.5.2 访问Hibernate的Session接口  3.6 运行helloapp应用  3.6.1 创建运行本书范例的系统环境  3.6.2 创建helloapp应用的目录结构  3.6.3 把helloapp应用作为独立应用程序运行  3.6.4 把helloapp应用作为...

    Hibernate 中文 html 帮助文档

    13.3. StatelessSession (无状态session)接口 13.4. DML(数据操作语言)风格的操作(DML-style operations) 14. HQL: Hibernate查询语言 14.1. 大小写敏感性问题 14.2. from子句 14.3. 关联(Association)与连接(Join) ...

Global site tag (gtag.js) - Google Analytics