首页 > 其他 > 详细

报错No Session found for current thread

时间:2017-01-23 14:39:47      阅读:182      评论:0      收藏:0      [点我收藏+]

工程报错No Session found for current thread。想自己写个通用dao,结果在getCurrentSession()的时候报错了。但是使用openSession()是正常的。

DAO层类

技术分享

service类,需要注解@Transactional

技术分享

 

 

org.mainstudio.com.dao处为你的dao包路径

 <aop:config proxy-target-class="true">
  <aop:advisor advice-ref="txAdvice"
   pointcut="execution(* org.mainstudio.com.dao..*.*(..))" />
 </aop:config>

整个配置文件代码如下:

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p"
 xmlns:context="http://www.springframework.org/schema/context"
 xmlns:aop="http://www.springframework.org/schema/aop"

 xsi:schemaLocation="http://www.springframework.org/schema/beans
 http://www.springframework.org/schema/beans/spring-beans-3.1.xsd
 http://www.springframework.org/schema/tx
 http://www.springframework.org/schema/tx/spring-tx.xsd
 http://www.springframework.org/schema/context
    http://www.springframework.org/schema/context/spring-context.xsd
    http://www.springframework.org/schema/aop
    http://www.springframework.org/schema/aop/spring-aop-4.2.xsd"
 xmlns:tx="http://www.springframework.org/schema/tx">

 <!--第一步 -->
 <!--定义服务层代码存放的包扫描路径 -->
 <context:component-scan
  base-package="org.mainstudio.com.service,org.mainstudio.com.dao" />

 <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource">
  <property name="driverClassName" value="com.mysql.jdbc.Driver"></property>
  <property name="url"
   value="jdbc:mysql://localhost:3306/db_FLOWER?useUnicode=true&amp;characterEncode=utf-8">
  </property>
  <property name="username" value="root"></property>
  <property name="password" value="123456"></property>
 </bean>
 <bean id="sessionFactory"
  class="org.springframework.orm.hibernate4.LocalSessionFactoryBean">
  <property name="dataSource">
   <ref bean="dataSource" />
  </property>
  <property name="hibernateProperties">
   <props>
    <prop key="hibernate.dialect">
     org.hibernate.dialect.MySQLDialect
    </prop>
   </props>
  </property>
  <property name="mappingResources">
   <list>
    <value>org/mainstudio/com/entity/Admin.hbm.xml</value>
    <value>org/mainstudio/com/entity/Users.hbm.xml</value>
    <value>
     org/mainstudio/com/entity/Ordersdetails.hbm.xml
    </value>
    <value>org/mainstudio/com/entity/Orders.hbm.xml</value>
    <value>org/mainstudio/com/entity/Goods.hbm.xml</value>
    <value>
     org/mainstudio/com/entity/Category.hbm.xml
    </value>
   </list>
  </property>
 </bean>
 <!-- User实体类Dao层 -->
 <bean id="userDao" class="org.mainstudio.com.dao.UserDaoImpl">
  <property name="sessionFactory">
   <ref bean="sessionFactory" />
  </property>
 </bean>

 <!-- Goods实体类Dao层 -->
 <bean id="goodsDao" class="org.mainstudio.com.dao.GoodsDaoImpl">
  <property name="sessionFactory">
   <ref bean="sessionFactory" />
  </property>
 </bean>

 <!-- Orders实体类Dao层 -->
 <bean id="ordersDao" class="org.mainstudio.com.dao.OrdersDaoImpl">
  <property name="sessionFactory">
   <ref bean="sessionFactory" />
  </property>
 </bean>

 <!-- Orders实体类Dao层 -->
 <bean id="ordersdetailsDao" class="org.mainstudio.com.dao.OrdersdetailsDaoImpl">
  <property name="sessionFactory">
   <ref bean="sessionFactory" />
  </property>
 </bean>

 <!-- Category实体类Dao层 -->
 <bean id="categoryDao" class="org.mainstudio.com.dao.CategoryDaoImpl">
  <property name="sessionFactory">
   <ref bean="sessionFactory" />
  </property>
 </bean>

 <!-- Admin实体类Dao层 -->
 <bean id="adminDao" class="org.mainstudio.com.dao.AdminDaoImpl">
  <property name="sessionFactory">
   <ref bean="sessionFactory" />
  </property>
 </bean>
 <bean id="transactionManager"
  class="org.springframework.orm.hibernate4.HibernateTransactionManager">
  <property name="sessionFactory" ref="sessionFactory" />
 </bean>
 <tx:annotation-driven transaction-manager="transactionManager" />

 <!-- 配置事务异常封装 -->
 <bean id="persistenceExceptionTranslationPostProcessor"
  class="org.springframework.dao.annotation.PersistenceExceptionTranslationPostProcessor" />

 <!-- 声明式容器事务管理 ,transaction-manager指定事务管理器为transactionManager -->
 <tx:advice id="txAdvice" transaction-manager="transactionManager">
  <tx:attributes>
   <tx:method name="add*" propagation="REQUIRED" />
   <tx:method name="get*" propagation="REQUIRED" />
   <tx:method name="*" propagation="REQUIRED" />
  </tx:attributes>
 </tx:advice>

 <aop:config proxy-target-class="true">
  <aop:advisor advice-ref="txAdvice"
   pointcut="execution(* org.mainstudio.com.dao..*.*(..))" />
 </aop:config>

</beans>

报错No Session found for current thread

原文:http://www.cnblogs.com/mainstudio/p/6343788.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!