spring事务管理问题,求大神帮忙

practice3 2013-05-01 10:54:54
这样配置有错吗?每次保存数据时都会出错,会不会是网上说什么的什么session冲突,求大神解决啊!!infoDAO.save()没错,但writeDAO.save()有错
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd">
<!-- Hibernate设置 -->
<!-- 会话工厂设置,读取Hibernate数据库配置信息 -->
<bean id="sessionFactory"
class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
<property name="configLocation">
<value>classpath:hibernate.cfg.xml</value>
<!--直接引入Hibernate配置方法 -->
</property>
</bean>
<!-- Spring设置 -->
<!-- 会话模板 -->
<bean id="hibernateTemplate"
class="org.springframework.orm.hibernate3.HibernateTemplate">
<property name="sessionFactory">
<ref bean="sessionFactory" />
</property>
</bean>
<!-- 事务管理器 -->
<bean id="transactionManager"
class="org.springframework.orm.hibernate3.HibernateTransactionManager">
<property name="sessionFactory">
<ref local="sessionFactory" />
</property>
</bean>
<!-- 配置UserDAOImpl持久化类的DAO bean-->
<bean id="infoDAO" class="com.culture.inform_infoDAO.inform_infoDAO">
<!--采用依赖注入来传入SessionFactory的引用-->
<property name="hibernateTemplate" ref="hibernateTemplate"/>
</bean>
<bean id="writeDAO" class="com.culture.inform_infoDAO.ly_info_DAO">
<!--采用依赖注入来传入SessionFactory的引用-->
<property name="sessionFactory" ref="sessionFactory"/>
</bean>
<!-- 配置事务拦截器-->
<bean id="transactionInterceptor"
class="org.springframework.transaction.interceptor.TransactionInterceptor">
<!-- 事务拦截器bean 需要依赖注入一个事务管理器-->
<property name="transactionManager">
<ref local="transactionManager" />
</property>
<property name="transactionAttributes">
<!-- 下面定义事务传播属性-->
<props>
<prop key="save">PROPAGATION_REQUIRED</prop>
<prop key="dele*">PROPAGATION_REQUIRED</prop>

</props>
</property>
</bean>
<!--定义BeanNameAutoProxyCreator ,该bean 是个bean 后处理器,无须被引用,因此
没有id 属性,这个bean 后处理器,根据事务拦截器为目标bean 自动创建事务代理-->
<bean class ="org.springframework.aop.framework.autoproxy.BeanNameAutoProxyCreator">
<!--指定对满足哪些bean name 的bean 自动生成业务代理-->
<property name="beanNames">
<!-- 下面是所有需要自动创建事务代理的bean-->
<list>
<value>infoDAO</value>
<value>writeDAO</value>
</list><!-- 此处可增加其他需要自动创建事务代理的bean-->
</property>
<!--下面定义BeanNameAutoProxyCreator所需的事务拦截器-->
<property name="interceptorNames">
<list>
<value>transactionInterceptor</value>
</list>
</property>
</bean>
<!-- 设置代理Struts动作 -->


</beans>

出现这样的错误
Hibernate:
insert
into
lyb
(lycontent, date, read, id)
values
(?, ?, ?, ?)
2013-5-1 10:42:24 org.hibernate.util.JDBCExceptionReporter logExceptions
警告: SQL Error: 1064, SQLState: 42000
2013-5-1 10:42:24 org.hibernate.util.JDBCExceptionReporter logExceptions
严重: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'read, id) values ('fhs', '2013-05-01', 1, 2011081071)' at line 1
2013-5-1 10:42:24 org.hibernate.event.def.AbstractFlushingEventListener performExecutions
严重: Could not synchronize database state with session
org.hibernate.exception.SQLGrammarException: Could not execute JDBC batch update


映射文件有错吗
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping>
<class name="com.culture.po.Ly_info" table="lyb">
<id name="id" type="integer">
<column length="11" name="id" not-null="true"/>
<generator class="assigned"/>
</id>
<property name="lycontent" type="text">
<column name="lycontent" not-null="true"/>
</property>
<property name="date" type="date">
<column name="date" not-null="true"/>
</property>

<property name="read" type="integer"><column name="read" not-null="true" /></property>
</class>
</hibernate-mapping>
...全文
55 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

81,091

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧