hibernate 事务

<?xmlversion="1.0"encoding="UTF-8"?><!DOCTYPEbeansPUBLIC"-//SPRING/DTDBEAN/EN""http:/... <?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING/DTD BEAN/EN" "http://www.springframework.org/dtd/spring-beans.dtd">
<beans>

<!-- define basic datasource by apache dbcp -->
<bean id="ds"
class="org.apache.commons.dbcp.BasicDataSource">
<property name="driverClassName" value="com.mysql.jdbc.Driver" />
<property name="url"
value="jdbc:mysql://localhost/huicai?characterEncoding=utf-8" />
<property name="username" value="root" />
<property name="password" value="root" />
</bean>

<!-- define transaction aware data source proxy -->
<bean id="proxy"
class="org.springframework.jdbc.datasource.TransactionAwareDataSourceProxy">
<constructor-arg>
<ref bean="ds" />
</constructor-arg>
</bean>

<!-- define session factory by transaction aware data source proxy -->
<bean id="sessionFactory"
class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
<property name="dataSource">
<ref bean="proxy" />
</property>
<property name="hibernateProperties">
<props>
<prop key="hibernate.dialect">
org.hibernate.dialect.MySQLDialect
</prop>
<prop key="hibernate.show_sql">false</prop>
<prop key="hibernate.cache.provider_class">
org.hibernate.cache.OSCacheProvider
</prop>
<prop key="hibernate.hbm2ddl.auto">update</prop>

</props>
</property>
<property name="mappingResources">
<list>
<value>mapping.hbm.user.xml</value>
<value>mapping.hbm.category.xml</value>
</list>
</property>
</bean>

<!-- define dao by session factory -->
<bean id="memberDAO" class="com.netease.chrnc.cms.dao.user.MemberDAOImpl">
<property name="sessionFactory">
<ref bean="sessionFactory" />
</property>
</bean>

</beans>
大侠们帮看看,如何加入事务,我测试了一下上面的配置,发现出错不能回滚,可能是我的思路根本就不对,大家可以改我的部门或者全部配置。
展开
 我来答
百度网友5625674
2010-12-27 · 超过10用户采纳过TA的回答
知道答主
回答量:38
采纳率:0%
帮助的人:30.3万
展开全部
在spring配置文件后加入以下事务管理:
<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="query*" propagation="REQUIRED"/>
<tx:method name="save*" propagation="REQUIRED"/>
<tx:method name="find*" propagation="REQUIRED"/>
<tx:method name="add*" propagation="REQUIRED"/>
<tx:method name="del*" propagation="REQUIRED"/>
<tx:method name="update*" propagation="REQUIRED"/>
<tx:method name="*" read-only="true"/>
</tx:attributes>
</tx:advice>

<aop:config>
<aop:pointcut id="allManagerMethod" expression="execution(* com.netease.chrnc.cms.dao.*.*(..))" />
<aop:advisor advice-ref="txAdvice" pointcut-ref="allManagerMethod"/>
</aop:config>
如果出现找不到tx:advice之类的异常,把schema加载xml的头信息修改为:
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:aop="http://www.springframework.org/schema/aop"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:tx="http://www.springframework.org/schema/tx"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-2.5.xsd
http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.0.xsd
http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.0.xsd" default-autowire="byType">
.
.

.
.
Storm代理
2023-05-09 广告
StormProxies是全球大数据IP资源服务商,其住宅代理网络由真实的家庭住宅IP组成,可为企业或个人提供满足各种场景的代理产品。点击免费测试(注册即送1G流量)StormProxies有哪些优势?1、IP+端口提取形式,不限带宽,IP... 点击进入详情页
本回答由Storm代理提供
lbhwrxq
2011-01-04 · TA获得超过764个赞
知道答主
回答量:490
采纳率:0%
帮助的人:271万
展开全部
数据库中数句分DML,DDL,DCL
DML是数据控制语句,包括SELECT,INSERT,UPDATE,DELETE,可以用ROLLBACK回滚操作或COMMIT提交操作

DDL是数据定义语句,包括CREATE,DROP,ALTER,不可进行事务操作,不能回滚,也就是说你CREATE了一个表,只能用DROP删除,系统对DDL语句不会创建ROLLBACK SEGMENT(回滚段),所以无法ROLLBACK撤消操作

DCL是数据控制语句,有GRANT,REVOKE,是对角色权限的授予和撤消,无回滚和提交一说,同DDL

所以你的创建表操作,不支持事务

我也是刚刚理解的,呵呵,但是我遇到一种情况是,建表语句和更新语句必须要保持一个事物的特性,这时该如何做呢,请高手们指点!!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式