spring配置事物问题

joemw 2013-04-05 06:25:04
小弟今天用spring配置处理hibernate的事物,遇到了这样一个问题,如下:

//使用spring配置hibernate
<bean id="sessionFactory"
class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
<property name="dataSource" ref="dataSource">
</property>
<property name="hibernateProperties">
<props>
<prop key="dialect">${dialect}</prop>
<prop key="hibernate.show_sql">true</prop>
<prop key="hibernate.format_sql">true</prop>
</props>
</property>
<property name="mappingResources">
<list>
<value>com/myorg/entity/User.hbm.xml</value>
<value>com/myorg/entity/Notify.hbm.xml</value>
<value>com/myorg/entity/Carspace.hbm.xml</value>
<value>com/myorg/entity/House.hbm.xml</value>
<value>com/myorg/entity/Role.hbm.xml</value>
</list>
</property>
</bean>


<!-- 配置声明事务管理 -->
<!-- 事务管理 -->
<bean id="hibernateTransactionManager"
class="org.springframework.orm.hibernate3.HibernateTransactionManager">
<property name="sessionFactory" ref="sessionFactory" />
</bean>
<!-- 定义事务规则(事务通知) -->
<tx:advice id="transactionAdvice"
transaction-manager="hibernateTransactionManager">
<tx:attributes>
//如下配置后,更新,删除,查询没有问题 插入有问题
<tx:method name="save*" propagation="REQUIRED" />
<tx:method name="update*" propagation="REQUIRED" />
<tx:method name="modify*" propagation="REQUIRED" />
<tx:method name="delete*" propagation="REQUIRED" />
<tx:method name="find*" propagation="NOT_SUPPORTED"
read-only="true" />
<tx:method name="Check*" propagation="NOT_SUPPORTED"
read-only="true" />
<tx:method name="get*" propagation="NOT_SUPPORTED"
read-only="true" />
</tx:attributes>
</tx:advice>
<!--定义方面完成织入-->
<aop:config>
<!-- 定义切面 -->
<aop:pointcut id="tranPointCut"
expression="execution(* com.myorg.service.*.*(..))" />
<!-- 完成织入 -->
<aop:advisor advice-ref="transactionAdvice"
pointcut-ref="tranPointCut" />
</aop:config>

其他的配置都没问题,
这样配置后,删除,修改,查询 是没有什么问题的,但是插入有问题,控制台能够打印出插入语句,但是数据库根本没有插入记录。不知道是不是提交的问题 另外,我使用了opensessionInView.
劳烦大家帮一下忙啊 搞了一下午了...
...全文
42 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
woyaofeiqilai 2013-04-05
  • 打赏
  • 举报
回复
<aop:pointcut id="tranPointCut" expression="execution(* com.myorg.service.*.*(..))" /> 插入语句如下 public int saveNotify(Notify nf) throws Exception { return (Integer)this.getHibernateTemplate().save(nf); } 一个是 service 一个是 dao 你叫人家怎么管理啊
joemw 2013-04-05
  • 打赏
  • 举报
回复
插入语句如下 public int saveNotify(Notify nf) throws Exception { return (Integer)this.getHibernateTemplate().save(nf); }

67,515

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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