我的配置文件是这样的.
有点长.大家耐心些
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd"><beans>
<bean id="dataSource"
class="org.apache.commons.dbcp.BasicDataSource">
<property name="driverClassName">
<value>net.sourceforge.jtds.jdbc.Driver</value>
</property>
<property name="url">
<value>jdbc:jtds:sqlserver://localhost:1433</value>
</property>
<property name="username">
<value>sa</value>
</property>
<property name="password">
<value>hdlb</value>
</property>
</bean>
<bean id="sessionFactory"
class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
<property name="dataSource">
<ref bean="dataSource" />
</property>
<property name="hibernateProperties">
<props>
<prop key="hibernate.dialect">
org.hibernate.dialect.SQLServerDialect
</prop>
</props>
</property>
<property name="mappingResources">
<list>
<value>hibernate/UUser.hbm.xml</value>
<value>hibernate/UBureau.hbm.xml</value>
<value>hibernate/UQuestion.hbm.xml</value>
</list>
</property>
</bean>
<bean id="UUserDAO" class="hibernate.UUserDAO">
<property name="sessionFactory">
<ref bean="sessionFactory" />
</property> </bean>
<bean id="burService" class="service.BurServiceImpl"></bean>
<bean id="quesService" class="service.QuesServiceImpl"></bean>
<bean id="userService" class="service.UserServiceImpl" />
<bean id="deptService" class="service.DeptServiceImpl">
<property name="sessionFactory" ref="sessionFactory" />
</bean>
<bean id="UBureauDAO" class="hibernate.UBureauDAO">
<property name="sessionFactory">
<ref bean="sessionFactory" />
</property>
</bean>
<bean id="page" class="Util.page.Page"></bean>
<bean id="pagequery" class="Util.page.PageQuery">
<property name="sessionFactory">
<ref bean="sessionFactory" />
</property>
</bean> <bean id="transactionServerManager"
class="org.springframework.orm.hibernate3.HibernateTransactionManager">
<property name="sessionFactory">
<ref bean="sessionFactory" />
</property>
</bean> <bean id="BurDaoProxy"
class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean">
<property name="transactionManager"
ref="transactionServerManager" />
<property name="target" ref="UBureauDAO" />
<property name="transactionAttributes">
<props>
<prop key="update*">PROPAGATION_REQUIRED</prop><!-- 对于代理的TestService里所有以update开头的方法执行事务 -->
<prop key="*">PROPAGATION_SUPPORTS,readOnly</prop><!-- 所有的方法只能读取数据 -->
</props>
</property>
</bean>
<bean id="QuesDaoProxy"
class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean">
<property name="transactionManager"
ref="transactionServerManager" />
<property name="target" ref="UQuestionDAO" />
<property name="transactionAttributes">
<props>
<prop key="update*">PROPAGATION_REQUIRED</prop><!-- 对于代理的TestService里所有以update开头的方法执行事务 -->
<prop key="*">PROPAGATION_SUPPORTS,readOnly</prop><!-- 所有的方法只能读取数据 -->
</props>
</property>
</bean> <bean id="UQuestionDAO" class="hibernate.UQuestionDAO">
<property name="sessionFactory">
<ref bean="sessionFactory" />
</property>
</bean>
</beans>

解决方案 »

  1.   

    说实话大哥你写的xml太乱了,看的人眼都花了,
    你把dao都放到一起
    传上来后也缩进一下
    要我是你主管,看你写这么乱我得把你掐死
    哈哈
    开个玩笑,不过你的格式得改改从异常上看是Hibernate的session工厂的错误,如果加进spring的话
    基本都是用的spring轻量级session不用hibernate的工厂方法去创建
    session了
    所以是配置的问题,我还是建议你重做一边把
    太乱了
      

  2.   

    什么是spring轻量级session.如何调用呢?
    我是这样
    Session session = quesDao.getHibernateTemplate().getSessionFactory()
    .getCurrentSession();
    List ques = new ArrayList();
    ques = session.createSQLQuery(sql).list();
    请指正.
      

  3.   

    你用的这个session是hibernate的session是由getSessionFactory得到的
    也就是hibernate的session工厂
    这个是重量级的不能随便开启,占用资源是很大的
    要用hibernate的话还需要创建事物transcation
    当然你是交给spring来处理的所以也就不用再创建这个工厂
    直接交给spring的事物代理类来处理
    所以你这种做法是有问题的
      

  4.   

    直接用声明式事务不行么?TransactionManager
      

  5.   

    那你用的session就hibernate提供的,spring就没什么用了
    当然也可以用事物来处理
    你不感觉麻烦你就那么做
      

  6.   

    说的有道理,spring就是用来事物管理的 像你那样spring就灭有什么用处了
      

  7.   

    如何让spring起作用呢?
    什么是spring轻量级session.如何调用呢?
      

  8.   

    有没有人回答额.
    请回答:
    什么是spring轻量级session.如何调用呢?
      

  9.   

    有没有人回答额.
    请回答:
    什么是spring轻量级session.如何调用呢?