使用线程的Hibernate会话和事务

Sha*_*ded 4 java multithreading hibernate session-variables

我正在开发一个使用Hibernate3和JDBC连接/与我们的数据库交互的项目(MSSQL 2008)

目前我们在主类中创建会话工厂,然后开始我们的事务,然后我们启动一个新线程,该线程创建连接,什么不是.我会看看我是否可以用一些伪代码来说明这一点......

public static main(String[] args){
    for(...){
        SessionFactory sf = new SessionFactory();
        sf.getCurrentSession.beginTransaction();
        CreateNewThreadedObject.run();
        sf.getCurrentSession.getTransaction.commit();
    }
}
Run Code Online (Sandbox Code Playgroud)

我的问题是,这样安全吗?我知道会话不是线程安全的,但我并没有在线程中使用会话.如果有什么我正在使用交易.将sessionfactory传递给线程对象会更好吗?任何建议表示赞赏!

kvi*_*sta 5

了解Hibernate Sessions和线程关联非常重要,最好在这里解释一下:

http://community.jboss.org/wiki/Sessionsandtransactions

如果您正在使用Web应用程序,我强烈建议您使用View模式打开会话:

https://community.jboss.org/wiki/OpenSessionInView