Bor*_*yev 3 java session hibernate
我正在学习Hibernate,我需要帮助才能理解Sessions工作方式.我在下面给出了一个类中的一些方法.
我看到有一个getCurrentSession()在SessionFactory类.所以,似乎只有一个Session可以在一个内部"活跃" SessionFactory.这SessionFactory是一个交易队列,交易是按顺序完成的吗?如果是,那么是否可以将交易提升到更高或更低的优先级?
private static SessionFactory factory;
//Get a hibernate session.
public static Session getSession(){
if(factory == null){
Configuration config = HibernateUtil.getConfiguration();
factory = config.buildSessionFactory();
}
Session hibernateSession = factory.getCurrentSession();
return hibernateSession;
}
public static void commitTransaction(){
HibernateUtil.getSession().getTransaction().commit();
}
public static void rollbackTransaction(){
HibernateUtil.getSession().getTransaction().rollback();
}
Run Code Online (Sandbox Code Playgroud)
还有一些使用的方法getTransaction().
SessionFactory的工作是隐藏会话创建策略.例如,在Web应用程序中,您可能希望在线程上第一次调用SessionFactory返回create ,然后在请求期间从该点返回相同的内容.(由于您可能希望从该会话加载客户数据,因此可能会在同一会话中修改其帐户.)其他时候,您可能希望每次调用时都创建一个全新的会话.因此,通过将此决策隐藏在API 后面,您只需编写从工厂获取并对其进行操作的代码.SessiongetCurrentSession()SessionSessionFactorygetCurrentSession()SessionFactorySession
Session处理交易的是什么.正如您可能预期的那样,事务以a开始Session,然后是完成或回滚.实际上没有办法确定它们的优先级,因为一旦启动它们,您就会致力于回滚或提交它们.
| 归档时间: |
|
| 查看次数: |
2299 次 |
| 最近记录: |