<property name="hibernate.current_session_context_class">jta</property>
<property name="hibernate.current_session_context_class">thread</property>
jta / thread 的选择
参考原文地址:https://forums.hibernate.org/viewtopic.php?p=2384980&sid=55c82c31f846749e5aa7fa38b8657a03
Hi,
When you create a hibernate session using any of the sessionFactory.openSession(...) methods the session factory will 'bind' the session to the current context. The default context is 'thread' which means the sesion factory will bind the session to the thread from which openSession(...) is called.
This is useful because you can later call sessionFactory.getCurrentSession() which will return the session that is bound to the currently running thread.
You can use other predefined current_session_context_class values such as 'jta' which will bind the session to the currently running JTA transaction (if you're running in an application server that supports JTA this is really useful). Or you can write your own implementation of org.hibernate.context.CurrentSessionContext and use that implementation to manage the current session context (not really advisable unless you absolutely need to).
Neil
分享到:
相关推荐
- `hibernate.current_session_context_class`:设置当前Session的上下文类,这里是`thread`,意味着每个线程都有一个独立的Session实例。 5. **连接池配置(C3P0)**: - `hibernate.c3p0.*`:C3P0是一个开源的...
如果配置文件中没有指定 CURRENT_SESSION_CONTEXT_CLASS 属性,那么将使用默认的实现。 SessionFactory 和 ConnectionProvider 是 Hibernate 框架中的两个核心组件,了解它们的实现机制对于深入了解 Hibernate 的...
当我们遇到“Spring MVC No Session found for current thread”的错误时,这通常意味着在尝试访问HttpSession对象时,当前线程没有找到相关的session。这个问题可能是由于多种原因导致的,包括配置错误、过滤器设置...
在Hibernate的配置中,可以通过`current_session_context_class`属性设置事务上下文。例如,将其设置为`thread`,表示使用ThreadLocal Session: ```xml <property name="current_session_context_class">thread ``...
- `current_session_context_class`设置为`thread`,意味着每个线程都有自己的Session实例,这样可以确保线程安全。 - `show_sql`和`format_sql`分别开启SQL日志输出和格式化,便于调试。 - `dialect`配置数据库...
if (context.Session == null || context.Session.Count == 0) { // Session为空,可能已过期 context.Response.Redirect("/Login.aspx"); } else if (context.Request.Cookies["AuthCookie"] == null) { //...
可以设置`current_session_context_class`属性来选择Session的上下文。例如: ```xml <session-factory> <!-- Other properties --> <property name="current_session_context_class">thread </session-factory...
在 currentSession() 执行时,如果当前 Session 为空,currentSession 会调用 SessionFactory 的 openSession。 因此,getCurrentSession() 对于 Java EE 来说是更好的获取 Session 的方法。 Session 的关闭 在 ...
<property name="current_session_context_class">thread </session-factory> ``` 在上述配置中,指定了 MySQL 数据库的连接信息,并配置了 C3P0 连接池参数。接下来,可以使用以下代码片段来执行基本的 CRUD ...
同时,为了使Hibernate的Session与Spring的事务生命周期同步,还需要在Hibernate的配置文件(如`hibernate.reveng.xml`)中启用`current_session_context_class`属性,设置为`org.springframework.orm.hibernate5....
<prop key="current_session_context_class">thread <prop key="hibernate.show_sql">true <prop key="hibernate.format_sql">true <prop key="hibernate.hbm2ddl.auto">update ...
- `current_session_context_class`:设置当前线程中的Session实例,这里使用`thread`表示每个线程有一个独立的Session实例。 - `cache.provider_class`:设置缓存提供者类,默认不开启缓存。 ##### 4. 实体类...
- `current_session_context_class`: 当前会话上下文类,比如`thread`表示线程绑定的会话。 5. **性能优化** - `hibernate.show_sql`: 是否在控制台打印执行的SQL语句,通常用于调试。 - `hibernate.format_sql`...
return currentSessionContext.currentSession(); } 从上面的代码可以看到,getCurrentSession 方法将获得 Session 对象的工作委托给了 currentSessionContext 对象。currentSessionContext 对象是当前 Session 的...
<property name="hibernate.current_session_context_class">thread ``` 然后,在程序中通过 sessionFactory.getCurrentSession() 获得线程绑定 Session 对象。 二级缓存 Hibernate 的二级缓存可以将数据库或者...
<property name="current_session_context_class">jta ``` 在不集成 Hibernate 的环境下(例如使用 JDBC 的独立应用程序),需要在 hibernate.cfg.xml 文件中添加: ``` <property name="current_session_context_...
- `hibernate.current_session_context_class`: 当前Session上下文类,可以是`thread`(线程绑定)或`jta`(Java Transaction API)。 4. **日志配置** - `hibernate.show_sql`: 如果设置为`true`,Hibernate将在...
- `<property name="hibernate.current_session_context_class">`: 当前Session上下文,例如`thread`表示每个线程绑定一个Session。 5. **其他高级配置**: - `<property name="hibernate.show_sql">`: 是否显示...
同时,需要在Hibernate配置中指定`current_session_context_class`为`org.springframework.orm.hibernate4.SpringSessionContext`。 2. **缓存配置的改变** - Hibernate4中,缓存提供商由旧的类名改为`...
8. **hibernate.current_session_context_class**:定义当前Session上下文的管理方式,例如ThreadLocal或JTA。 通过这些课件,学习者可以深入了解Hibernate的工作原理,如何配置其主要属性,以及如何根据项目的具体...