spring + hibernate+ C3P0+MYSQL配置后数据修改不了怎么办?
spring+hibernate+C3P0+MYSQL配置后数据可以读,但是插入或者修改都不成功,也不报错这怎么办?...
spring + hibernate+ C3P0+MYSQL配置后数据可以读,但是插入或者修改都不成功,也不报错 这怎么办?
展开
展开全部
你应该用了spring配置式事务,被限制了修改了吧。
如下面:
<!-- 事务代理拦截器的配置 -->
<bean id="baseTransactionProxy" abstract="true" class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean">
<property name="transactionManager">
<ref bean="transactionManager" />
</property>
<property name="transactionAttributes">
<props>
<prop key="insert*">PROPAGATION_REQUIRED</prop>
<prop key="update*">PROPAGATION_REQUIRED</prop>
<prop key="delete*">PROPAGATION_REQUIRED</prop>
<prop key="*">PROPAGATION_REQUIRED,readOnly</prop>
</props>
</property>
</bean>
这个配置中只允许 添加事务的对象中
以insert , update ,delete 开头的方法名 才允许修改数据库,
否则都是只读。
比方说我们写了一个方法,
doUpdateBook(Book book);
给这个类配置类事务,
那么它是无法修改数据库的,解决方法是,在配置事务里面吧规则加上去。
<!-- 事务代理拦截器的配置 -->
<bean id="baseTransactionProxy" abstract="true" class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean">
<property name="transactionManager">
<ref bean="transactionManager" />
</property>
<property name="transactionAttributes">
<props>
<prop key="insert*">PROPAGATION_REQUIRED</prop>
<prop key="update*">PROPAGATION_REQUIRED</prop>
<prop key="delete*">PROPAGATION_REQUIRED</prop>
<prop key="doUpdate*">PROPAGATION_REQUIRED</prop>
<prop key="*">PROPAGATION_REQUIRED,readOnly</prop>
</props>
</property>
</bean>
,这样,所有 doUpdate 开头的方法都可以修改数据库。
具体的spring事物配置参考:
http://zhidao.baidu.com/question/104246795.html
如下面:
<!-- 事务代理拦截器的配置 -->
<bean id="baseTransactionProxy" abstract="true" class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean">
<property name="transactionManager">
<ref bean="transactionManager" />
</property>
<property name="transactionAttributes">
<props>
<prop key="insert*">PROPAGATION_REQUIRED</prop>
<prop key="update*">PROPAGATION_REQUIRED</prop>
<prop key="delete*">PROPAGATION_REQUIRED</prop>
<prop key="*">PROPAGATION_REQUIRED,readOnly</prop>
</props>
</property>
</bean>
这个配置中只允许 添加事务的对象中
以insert , update ,delete 开头的方法名 才允许修改数据库,
否则都是只读。
比方说我们写了一个方法,
doUpdateBook(Book book);
给这个类配置类事务,
那么它是无法修改数据库的,解决方法是,在配置事务里面吧规则加上去。
<!-- 事务代理拦截器的配置 -->
<bean id="baseTransactionProxy" abstract="true" class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean">
<property name="transactionManager">
<ref bean="transactionManager" />
</property>
<property name="transactionAttributes">
<props>
<prop key="insert*">PROPAGATION_REQUIRED</prop>
<prop key="update*">PROPAGATION_REQUIRED</prop>
<prop key="delete*">PROPAGATION_REQUIRED</prop>
<prop key="doUpdate*">PROPAGATION_REQUIRED</prop>
<prop key="*">PROPAGATION_REQUIRED,readOnly</prop>
</props>
</property>
</bean>
,这样,所有 doUpdate 开头的方法都可以修改数据库。
具体的spring事物配置参考:
http://zhidao.baidu.com/question/104246795.html
展开全部
没有提交事务
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
配置show_sql查看是否执行了sql语句,如果执行了,那么应该是没有调用commit进行提交.
如果你没有使用spring提供的HibernateTemplate而是直接使用的session对象进行插入或修改操作,仍然需要手工进行事务处理.
如果你没有使用spring提供的HibernateTemplate而是直接使用的session对象进行插入或修改操作,仍然需要手工进行事务处理.
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询