分析 org.hibernate.HibernateException: No Session found for current thread

简介: /**      *      * org.hibernate.HibernateException: No Session found for current thread      * 分析:getCurrentSession()和当前事务有关系  ...

/**
     *
     * org.hibernate.HibernateException: No Session found for current thread
     * 分析:getCurrentSession()和当前事务有关系
     *
     * Spring hibernate 事务的流程
     *
     * 1.在方法开始之前
     *         ①.获取Session
     *         ②.把Session 和当前线程绑定,这样就可以在Dao中 使用SessionFactory 的
     *         getCurrentSession() 方法来获取Session 了
     *         ③.开启事务
     *
     * 2.执行业务方法
     *        1)出现异常
     *         ①.回滚事务
     *        2)正常结束
     *         ①.提交事务
     *         finally{
     *             ②.和当前线程绑定的Session解除绑定
     *             ③.关闭Session
     *         }
     *
     * 结论:
     *         只要使用getCurrentSession()来获取Session,则
     *         ①必须配置事务 
     *         ②必须在配置事务属性时,包含所有的业务方法

     */

开始做,坚持做,重复做
相关文章
|
XML SQL Oracle
Hibernate.cfg.xml配置分析讲解
学习Hibernate时,经常会遇到Hibernate.cfg.xml配置问题,这里将介绍Hibernate.cfg.xml配置问题的解决方法。 Hibernate的描述文件可以是一个properties属性文件,也可以是一个xml文件。下面讲一下Hibernate.cfg.xml配置。配置格式如下:
157 0
|
SQL Java 数据库连接
MyBatis+Hibernate+JDBC对比分析
MyBatis目前作为持久层,用的最多,因为它符合互联网开发的变动性,实际开发中需求总会有这样的,那样的变动,MyBatis虽然没有Hibernate那么全自动化,而且对于开发人员的sql能力要求比较高,但是正是因为这样sql可以优化,业务也更容易扩展。
1430 0
|
Java Spring 数据库连接
深入JVM分析spring-boot应用hibernate-validator
问题 可重现的Demo代码:demo.zip 最近排查一个spring boot应用抛出hibernate.validator NoClassDefFoundError的问题,异常信息如下: Caused by: java.
2071 0
|
Java Spring 数据库连接
深入JVM分析spring-boot应用hibernate-validator NoClassDefFoundError
问题 可重现的Demo代码:demo.zip 最近排查一个spring boot应用抛出hibernate.validator NoClassDefFoundError的问题,异常信息如下: Caused by: java.
1258 0
|
SQL 缓存 Java
关于hibernate中对象的三种状态分析
一、首先Hibernate中对象的状态有三种:瞬态、游离态和持久态,三种状态转化的方法都是通过session来调用,瞬态到持久态的方法有save()、saveOrUpdate()、get()、load();持久态到瞬态的方法有delete();游离态到持久态的方法有update()、saveOrUpdate()、lock();持久态到游离态的方法有:session.close()、session.evict()、session.clear()。
1271 0
|
缓存 Java 数据库连接
hibernate5(7)操纵对象入门[2]四大对象状态分析
<div class="markdown_views"> <h1 id="状态类型">状态类型</h1> <p>在hibernate中,java对象的声明周期对应有4种状态:</p> <table> <thead><tr> <th>状态</th> <th>说明</th> </tr></thead> <tbody> <tr> <td>瞬时(Transient)</td>
1395 0
|
Java 数据库连接 Spring
No Hibernate Session bound to thread, and configuration does not allow creation of non-transactional
      ssh整合时,使用this.getSessionFactory().getCurrentSession(),会报No Hibernate Session bound to thread, and configuration does not allow creation of non-transactional异常。。 &lt;bean id="sessionFactor
1631 0
|
Java 数据库连接 Spring
Exception in thread &quot;main&quot; org.hibernate.HibernateException: save is not valid without active transa
  Exception in thread "main" org.hibernate.HibernateException: save is not valid without active transaction at org.hibernate.context.ThreadLocalSessionContext$TransactionProtectionWrap
1483 0
|
SQL 缓存 Java
hibernate映射对象三种状态的分析
一,首先hibernate中对象的状态有 三种:瞬态、游离态和持久态,三种状态转化的方法都是通过session来调用,瞬态到持久态的方法有save()、saveOrUpdate()、 get()、load();持久态到瞬态的方法有delete();游离态到持久态的方法有update()、saveOrUpdate()、 lock();持久态到游离态的方法有:session.close()、session.evict()、session.clear()。
1059 0