ssh2框架中,通过spring管理事务,一般将事务管理到哪一层

解决方案 »

  1.   

    action层调用service层,service层调用dao层
    事务管理一盘通过service层的包命名和方法命名决定他的事务操作权限
      

  2.   

    我的工程配置的事务,给你看下 <!-- 配置Hibernate的局部事务管理器,使用HibernateTransactionManager类 -->
    <!-- 该类实现PlatformTransactionManager接口,是针对Hibernate的特定实现-->
    <bean id="transactionManager"
    class="org.springframework.orm.hibernate3.HibernateTransactionManager">
    <!-- 配置HibernateTransactionManager时需要依注入SessionFactory的引用 -->
    <property name="sessionFactory" ref="sessionFactory" />
    </bean> <!-- 配置事务切面Bean,指定事务管理器 -->
    <tx:advice id="txAdvice" transaction-manager="transactionManager">
    <!-- 用于配置详细的事务语义 -->
    <tx:attributes>
    <tx:method name="insert*" propagation="REQUIRED" />
    <tx:method name="update*" propagation="REQUIRED" />
    <tx:method name="delete*" propagation="REQUIRED" />
    <tx:method name="*" read-only="true" /> </tx:attributes>
    </tx:advice>
    <aop:config>
    <!--
    配置一个切入点,匹配com.demo.hibernate.service包下 所有以Impl结尾的类的所有方法的执行
    -->
    <aop:pointcut id="leePointcut"
    expression="execution(* com.demo.hibernate.service.*Impl.*(..))" />
    <!-- 指定在txAdvice切入点应用txAdvice事务切面 -->
    <aop:advisor advice-ref="txAdvice" pointcut-ref="leePointcut" />
    </aop:config>
      

  3.   

    根据楼主工程大小来定,本人通常做法与楼上相同,分三层,action层,manager层,dao层
      

  4.   

    谢谢楼上的两位
    我也是管理在,业务层的
    但是我看有人帖子是写到dao层的,有点迷惘了!
    希望大家讨论下呗!
      

  5.   

    dao层是对单个对象(数据库单表)操作的,而事务的意思是对多表操作时,有的表操作成功,有的表操作失败时,可以回滚。所以说对DAO层应用事务作用充其量也就是触发提交而已。而起到作用,必须应用到service层
      

  6.   

    一般  dao  daoimpi  manager    一般有些项目不要manager层的  所以到daoimpi层就是  就是services  和楼上的人说的一样啊 不要误会   这是本人的习惯!
      

  7.   

    一般  dao  daoimpi  manager    一般有些项目不要manager层的  所以到daoimpi层就是  就是services  和楼上的人说的一样啊 不要误会   这是本人的习惯!
      

  8.   

    都是放在service层上,因为这层会调用dao层,而service层中某个类里的方法调用的不仅仅只是dao里面的一个方法,有可能是多个方法 一起调用,如果调用的这些方法中有一个不成功或抛出异常,就必须全部返回到以前的数据,所以就必须将这个service层中某个类里的方法进行管理,这就是用到了spring里的事务管理,所以都是事务管理一般都是用在service层中
      

  9.   

    HQL语句一般会写到,哪一层?业务逻辑层,还是写到dao层呢?
      

  10.   

    一般写到service层 然后传到dao层去执行..我是这么做的
      

  11.   

    另外问一句
    业务层,你们一般写逻辑吗?
    还是将逻辑写到了dao层呢?
      

  12.   

    业务层 顾名思义 就是处理业务逻辑的 逻辑当然写在业务层了
    dao层只负责对数据库的增删改查 操作 不涉及逻辑