相关文章
更多最近更新
更多SSH事务问题 讨论
2019-03-25 13:46|来源: 网路
大家好,请注意一下这里。
我用struts+hibernate+spring,做了一个项目,但是对事务有点不明白,希望能得到正解。
我按spring的要求,在xml文件中配置了事务需要配置的信息,同时在web.xml中增加了OpenSessionInViewFilter,我的service类有两个方法,一个是save,一个是update,我在一个action方法中先后调用save再调update,但是update方法报出异常时,save方法的内容还是到了数据库中,这是怎么回事,不是说spring的事务控制是以service(即一个service类)为单元吗?为什么我调用同一个类中的两个方法,事务不一样呢?
我用struts+hibernate+spring,做了一个项目,但是对事务有点不明白,希望能得到正解。
我按spring的要求,在xml文件中配置了事务需要配置的信息,同时在web.xml中增加了OpenSessionInViewFilter,我的service类有两个方法,一个是save,一个是update,我在一个action方法中先后调用save再调update,但是update方法报出异常时,save方法的内容还是到了数据库中,这是怎么回事,不是说spring的事务控制是以service(即一个service类)为单元吗?为什么我调用同一个类中的两个方法,事务不一样呢?
<bean id="baseTransactionProxy" class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean"> <property name="transactionManager"><ref bean="transactionManager"></ref></property> <property name="proxyTargetClass"><value>true</value></property> <property name="target"><ref bean="commonService"></ref></property> <property name="transactionAttributes"> <props> <prop key="update*">PROPAGATION_REQUIRED,-Exception</prop> <prop key="delete*">PROPAGATION_REQUIRED,-Exception</prop> <prop key="add*">PROPAGATION_REQUIRED,-Exception</prop> <prop key="save*">PROPAGATION_REQUIRED,-Exception</prop> <prop key="batchInsert*">PROPAGATION_REQUIRED</prop> <prop key="*">PROPAGATION_REQUIRED,readOnly</prop> </props> </property> </bean>
相关问答
更多-
有讨论计算机技术小组么?[2021-08-08]
有很多的。 比如黑基、华盟、饭客 我比较常猎鹰 www.bbs.lyhack.net 可以去看看,有很多电脑技术问题,也有解答专人。 -
郎咸平讨论什么开始的?[2023-10-02]
www.yuanLv.net远虑电脑培训在线视频教程网上有很多郎咸平的讲座! -
郎咸平讨论什么开始的?[2022-03-13]
www.yuanLv.net远虑电脑培训在线视频教程网上有很多郎咸平的讲座! -
有关JavaME的讨论心法?[2021-12-23]
无论是JAVAEE JAVAME JAVASE 我觉得理解面向对象是最重要的,我想这个就是面向对象,为什么会有装箱和拆箱,为什么所有类型都可以转换成object类型的解释吧 -
面试题:spring事务调用事务[2022-05-20]
Spring的事务机制是透明的,不需要去调用。如果真的要手动调用的话,可以使用TransactionTemplate提供的方法,具体见Spring的Reference: http://static.springsource.org/spring/docs/3.0.x/spring-framework-reference/html/transaction.html#tx-prog-template -
【求助】讨论旋转pattern的问题[2022-12-22]
我告诉你一个办法,一定可以做出阵列: 要点是: 第一次在做要阵列的FEATURE时,在选取绘图平面时,选择 top 或者 bottom 平面时,不要用缺省的DTM平面,用自定义平面 (make datum),此自定义平面用与缺省平面成一定角度且过轴心的平面产生,这样再做,应该就OK了,试试吧 -
ssh,关于spring事务管理aop和tx问题[2023-09-24]
切面就是把每个功能模块里面公用的方法提取出来,为了代码复用,不用在每个功能模块里都写,如权限控制,事务管理等。对于你的问题,切面切进去了,就会执行切面的代码,没有切进去那就不执行。若果切面对原来的代码没有影响,那切不切进去都没有影响,如果有影响,如权限控制,如果切进去,然后没有权限,那代码就不执行。 -
ssh,关于spring事务管理aop和tx问题[2022-03-13]
切面就是把每个功能模块里面公用的方法提取出来,为了代码复用,不用在每个功能模块里都写,如权限控制,事务管理等。对于你的问题,切面切进去了,就会执行切面的代码,没有切进去那就不执行。若果切面对原来的代码没有影响,那切不切进去都没有影响,如果有影响,如权限控制,如果切进去,然后没有权限,那代码就不执行。 -
SSH SPRING 事务只读[2023-11-13]
这个能明确一下吗?比如query*, 再看看这个方法里面调用其他的事务方法没。 -
与tkinter讨论(Discussion with tkinter)[2023-12-31]
问题出现在行 - user_says.set(input_get + "\n\n") ia_says.set(ia_answers) 您将替换users_says.set() , ia_says.set()将使用新值重置完整的标签。 相反,您应该获取旧值并将新值附加到它并将其设置回来,示例 - user_says.set(user_says.get() + input_get + "\n") ia_says.set(ia_says.get() + ia_answers + "\n") 或者您也可以为每个 ...