我是新手,问一个很小白的问题,还请高手帮助。
当DAO层使用HibernateTemplate之后,还有必要进行配置事务吗?
HibernateTemplate在出现异常之后,貌似会自动进行事务回滚。

解决方案 »

  1.   

    ..不是吧.   
    1.HibernateTemplate之后一样的要用事物的. hibernate只是对JDBC事物的封装.
    Transaction tran = session.beginTransaction();
    try {
        session.save(object);
        tran.commit();
        return true;
    } catch (Exception e) {
        tran.rollback();
        e.printStackTrace();
    }
    2.借助Spring的事物管理
      

  2.   

    commit和Transaction没绝对关系......
    commit了,不一定提交了事务
      

  3.   

    如果没有用到Spring和Hibernagte集成话,那么在Hibernate中用JDBC作业务处理的时候(增删改)是一定要用到事物的!
      

  4.   

    applicationContext-config.xml<!-- 配置一个Spring事物管理器来管理Hibernate的事物 -->
    <bean id="transactionManager"
    class="org.springframework.orm.hibernate3.HibernateTransactionManager">
    <property name="sessionFactory">
    <ref bean="sessionFactory" />
    </property>
    </bean>
    <!-- 事物传播特性 -->
    <tx:advice id="txAdvice" transaction-manager="transactionManager">
    <tx:attributes>
    <tx:method name="add*" propagation="REQUIRED" />
    <tx:method name="delete*" propagation="REQUIRED" />
    <tx:method name="update*" propagation="REQUIRED" />
    <tx:method name="*" propagation="SUPPORTS" read-only="true" />
    </tx:attributes>
    </tx:advice>
            <aop:config>
    <aop:pointcut id="tranPointcut"
    expression="execution(* com.test.*.service.impl.*.*(..))" />
    <aop:advisor advice-ref="txAdvice" pointcut-ref="tranPointcut" /> </aop:config>如果分了service层的话,service层组合多个Dao层方法,当然是把事物控制在service层。如上配置就是把食物控制在com.test.*.service.impl包中的所有类的所有方法,其中add,delete,update事物传播特性为REQUIRED。其它方法只读,不改变数据。
      

  5.   

    AutoCode代码生成器(SSH版)
    【用于JAVA开发中的 Struts2.0 + Spring2.0 + Hibernate3.2 框架整合程序开发】 
    强大的支撑功能,堪称JAVA SSH编程的利器,你绝对值得拥有!
    自动生成以下所有内容(即:完整的Java SSH支持的工程)   Sturts2.0配置--> sturts.xml、struts.properties
       Spring2.0配置--> applicationContext.xml
    Hibernate3.2配置--> hibernate.cfg.xml
             JSP文件--> 具有Struts2.0支持的增、删、改、查页面及自定义查询、自动分页等操作
              Action--> 业务Action.java和导出Excel的Action等
                 VO --> bean.java及 bean.hbm.xml配置文件
            Service --> Service接口定义类
                DAO --> DAO接口定义类
            DAOImpl --> DAO接口Implements实现类
           程序配置 --> web.xml
            验证框架--> bean-validation.xml (实体验证)、SaveAction-validation.xml (保存验证)、UpdateAction-validation.xml (修改验证)
       日志管理配置 --> log4j.xml       国际化配置-->globalMessages_zh.properties(中文)     globalMessages_en.properties(英文)
           页面美工 --> 页面按钮样式及CSS样式文件生成的代码直接拷贝到MyEclipse里,做简单设置,发布后即可运行!最多3分钟的生成过程,一次生成,全程无忧!更有9组页面按钮,6套页面样式供您选择,灵活的SSH架构、清晰的SSH层次结构!一旦拥有,JAVA无忧!
    有需要的朋友,可以到天空软件园 www.skycn.com 输入autocode 下载 SSH版来用,呵呵。。
      

  6.   

    用spring 容器,那个在DAO层中的 事务提交代码就不用写了直接在spring 容器中完成,在spring 配置有两种:
    一种是spring1.0配置,一种是spring2.0
    本人比较喜欢用spring2.0配置