`
congpeixue
  • 浏览: 274713 次
  • 性别: Icon_minigender_1
  • 来自: ...
社区版块
存档分类
最新评论

sessionFactory.currentSession()

阅读更多
public final Session currentSession() throws HibernateException {
Session current = existingSession( factory );
if (current == null) {
current = buildOrObtainSession();
// register a cleanup synch
current.getTransaction().registerSynchronization( buildCleanupSynch() );
// wrap the session in the transaction-protection proxy
if ( needsWrapping( current ) ) {
current = wrap( current );
}
// then bind it
doBind( current, factory );
}
return current;
} 




   protected Session buildOrObtainSession() {     
            return factory.openSession(     
                    null,     
                    isAutoFlushEnabled(),     
                    isAutoCloseEnabled(),     
                    getConnectionReleaseMode()     
            );     
    }


其中 isAutoFlushEnabled() 默认为true.

所以,用此方法得到的session不用显式关闭。
分享到:
评论

相关推荐

    HQL语句大全

    Session session = HibernateSessionFactory.currentSession(); Transaction t = session.beginTransaction(); session.save(o); t.commit(); HibernateSessionFactory.closeSession(); } ``` 这里的关键步骤...

    hibernate数据库通用SQL代码

    Session session = HibernateSessionFactory.currentSession(); Transaction t = session.beginTransaction(); session.save(o); t.commit(); HibernateSessionFactory.clossSession(); } ``` 2. 删除数据...

    Hibernate通用数据库操作方法

    首先,通过 `HibernateSessionFactory.currentSession()` 获取当前的 Session 实例,这是 Hibernate 中处理对象与数据库交互的基本单元。然后,开启一个新的事务 `t = session.beginTransaction()`。接下来,调用 `...

    jbpm关键点资料整理

    Session session = SessionFactory.currentSession(); IdentitySession identitySession = new IdentitySession(session); User guolei = new User("guolei"); User guoxin = new User("guoxin"); Group group1 = ...

    hibernate封装.pdf

    在代码中,我们看到`SessionFactory.currentSession()`用于获取当前的`Session`实例,这意味着该应用可能使用了某种会话管理策略,如基于Spring的事务管理。 2. **Session**: `Session`是与数据库交互的主要接口,...

    hiberate SQL Server 2000 存储过程.pdf

    Session session = HibernateSessionFactory.currentSession(); Connection conn = session.connection(); Transaction tx = session.beginTransaction(); CallableStatement cs = conn.prepareCall("{call ...

    Hibernate通用数据库操作代码

    insert方法 代码如下:public void insert(Object o){Session session = HibernateSessionFactory.currentSession();Transaction t = session.beginTransaction();session.save(o);t.commit();Hibernate...

    Hibernate源代码分析

    在 getCurrentSession() 方法中,SessionFactoryImpl 将获取 Session 的工作委托给了 currentSessionContext.currentSession(),currentSessionContext 是什么?它是 org.hibernate.context.CurrentSessionContext ...

    J2EE利用Hibernate采用B/S架构网页设计

    * the location of the configuration file for the current session. */ private static String CONFIG_FILE_LOCATION = "/hibernate.cfg.xml"; private static final ThreadLocal<Session> threadLocal = new...

    javaee试卷.pdf

    Book book = currentSession().get(Book.class, ISBN); if (book != null) { currentSession().delete(book); } } @Override public void update(Book book) { currentSession().update(book); } @...

    hibernate常用方法集合

    在`currentSession()`方法中,如果Session不存在,就会调用`sessionFactory.openSession()`来创建一个新的Session。Session是与数据库交互的主要接口,可以执行查询、插入、更新和删除操作。当不再需要Session时,...

    Hibernate源代码分析(一)

    return currentSessionContext.currentSession(); } 从上面的代码可以看到,getCurrentSession 方法将获得 Session 对象的工作委托给了 currentSessionContext 对象。currentSessionContext 对象是当前 Session 的...

    SSH整合中 hibernate托管给Spring得到SessionFactory

    这里使用了ThreadLocal变量来保证每个线程都有自己的Session实例,并且提供currentSession()和closeSession()方法来分别获取和关闭Session。 ```java public class HibernateUtil { private static final ...

    Hibernate技术详解

    Session sess = HibernateUtil.currentSession(); // 开始事务 Transaction tx = sess.beginTransaction(); // 创建HQL查询 Query<Person> query = sess.createQuery("from Person p where p.myEvents.title = ...

    day36 09-Hibernate中的事务:事务处理

    transaction = session.beginTransaction(); // 执行数据库操作 session.save(entity); transaction.commit(); } catch (Exception e) { if (transaction != null) { transaction.rollback(); } throw new ...

    基于IDEA的SSH项目之五:集成Hibernate--程序包

    return currentSession().get(User.class, id); } @Override public void saveUser(User user) { currentSession().save(user); } ... } ``` 最后,别忘了在Struts2的配置文件(struts.xml)中配置Action,...

    java面试题汇总

    在这个例子中,`currentSession()`方法检查当前线程的ThreadLocal变量是否有Session,如果没有,则打开新的Session并设置到ThreadLocal中,供后续代码使用。 了解这些Java多线程和ThreadLocal的基础知识对于Java...

    轻量级J2EE企业应用实战(part 4)共分5个part

    Session session = HibernateUtil.currentSession(new MyInterceptor()); Transaction tx = session.beginTransaction(); User u = new User(); u.setName("Yeeku Lee"); u.setAge(28); u.setNationality(...

    入研究java.lang.ThreadLocal类.docx

    - `currentSession()` 方法确保每次调用都能获取到当前线程的 Session 实例。 ### 总结 **ThreadLocal** 是 Java 中处理多线程资源共享问题的有效机制之一。它通过为每个线程提供独立的变量副本来避免线程间的资源...

Global site tag (gtag.js) - Google Analytics