Hibernate JtaTransactionManager 不会commit

lilygt 2009-08-12 05:55:06
我有一个工程是连接多个数据库的,在"sessionfactory.xml"中配置如下
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">

<beans>
<!-- Message source for this context, loaded from localized "messages_xx" files -->
<bean id="messageSource"
class="org.springframework.context.support.ResourceBundleMessageSource">
<property name="basename">
<value>MessageResources</value>
</property>
</bean>

<bean id ="oracleLobHandler"
class ="org.springframework.jdbc.support.lob.OracleLobHandler"
lazy-init ="true" >
<property name ="nativeJdbcExtractor" ref ="nativeJdbcExtractor" />
</bean >

<bean id ="nativeJdbcExtractor" class ="org.springframework.jdbc.support.nativejdbc.CommonsDbcpNativeJdbcExtractor"
lazy-init ="true" />

<!-- Hibernate SessionFactory -->
<bean id="sessionFactory"
class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
<!--
<property name="dataSource">
<ref local="dataSource" />
</property>
-->
<property name="mappingResources">
<list>
<value>zzch\obj\content.hbm.xml</value>
</list>
</property>
<property name="hibernateProperties">
<props>
<prop key="hibernate.dialect">
org.hibernate.dialect.OracleDialect
</prop>
<prop key="hibernate.current_session_context_class">thread</prop>
<prop key="hibernate.cglib.use_reflection_optimizer">false</prop>
<prop key="hibernate.show_sql">true</prop>
<prop key="hibernate.cache.use_query_cache">true</prop <prop key="hibernate.cache.provider_configuration_file_resource_path">/ehcache.xml</prop>
<prop key="hibernate.cache.provider_class">org.hibernate.cache.EhCacheProvider</prop>
<prop key="hibernate.proxool.pool_alias">DBPool</prop>
<prop key="hibernate.proxool.xml">
proxool.xml
</prop>
<prop key="hibernate.jdbc.batch_size">25</prop>
</props>
</property>
<property name="lobHandler" ref="oracleLobHandler" />
</bean>


<!-- Hibernate SessionFactory2 -->

<bean id="sessionFactory2"
class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">

<property name="mappingResources">
<list>
<value>zzch\obj\content.hbm.xml</value>

</list>
</property>
<property name="hibernateProperties">
<props>
<prop key="hibernate.dialect">
org.hibernate.dialect.SQLServerDialect
</prop>
<prop key="hibernate.current_session_context_class">thread</prop>
<prop key="hibernate.cglib.use_reflection_optimizer">false</prop>
<prop key="hibernate.show_sql">true</prop>
<prop key="hibernate.cache.use_query_cache">true</prop>
<prop key="hibernate.cache.provider_configuration_file_resource_path">/ehcache.xml</prop>
<prop key="hibernate.cache.provider_class">org.hibernate.cache.EhCacheProvider</prop>
<prop key="hibernate.proxool.pool_alias">DBPool2</prop>
<prop key="hibernate.proxool.xml">
proxool2.xml
</prop>
<prop key="hibernate.jdbc.batch_size">25</prop>
</props>
</property>
<property name="lobHandler" ref="oracleLobHandler" />
</bean>

<!-- Transaction manager for a single Hibernate SessionFactory (alternative to JTA) -->
<bean id="transactionManager"
class="org.springframework.transaction.jta.JtaTransactionManager">
</bean>
<!-- Transaction manager that delegates to JTA (for a transactional JNDI DataSource) -->
<!--
<bean id="transactionManager" class="org.springframework.transaction.jta.JtaTransactionManager"/>
-->
<bean id="transactionProxy" lazy-init="true"
class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean"
abstract="true">
<property name="transactionManager">
<ref bean="transactionManager" />
</property>
<property name="transactionAttributes">
<props>

<!--prop key="show*">PROPAGATION_REQUIRED,readOnly</prop-->
<prop key="find*">PROPAGATION_REQUIRED,readOnly</prop>
<prop key="*">PROPAGATION_REQUIRED</prop>

</props>
</property>
</bean>



<!-- 下面是base的dao,service,baseAction,baseServiceAction, -->
<bean id="baseDao" class="zzch.data.imp.AbstractDaoSupport"
singleton="true">
<property name="sessionFactory">
<ref bean="sessionFactory" />
</property>
</bean>

<bean id="baseDao2" class="zzch.data.imp.BaseDao2Imp"
singleton="true">
<property name="sessionFactory">
<ref bean="sessionFactory2" />
</property>
</bean>

<bean id="baseService" parent="transactionProxy">
<property name="target">
<bean class="zzch.service.imp.BaseServiceImpl"
singleton="true" autowire="byName">
<property name="baseDao">
<ref bean="baseDao" />
</property>
</bean>
</property>
</bean>

</beans>


通过上面的配置,我可以查看多个数据库的内容,但是在执行update和INSERT时,却无法提交到数据库中,程序没有报错,语句也执行了,就是没写进数据库.不知道是为什么?请高手指点.
...全文
179 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
alosin 2009-08-14
  • 打赏
  • 举报
回复
没提交事务??
visional_lily 2009-08-14
  • 打赏
  • 举报
回复
改用dataSource数据源
lilygt 2009-08-13
  • 打赏
  • 举报
回复
执行的update 等,都是调用org.springframework.orm.hibernate3.HibernateTemplate;里面的getHibernateTemplate()
lilygt 2009-08-13
  • 打赏
  • 举报
回复
没有人遇到过这样的问题吗?在update 后,调也数据,就是修改后的数据,但数据库中却没有修改...
lilygt 2009-08-13
  • 打赏
  • 举报
回复
没有知道吗?
源码链接: https://pan.quark.cn/s/a4b39357ea24 在C语言编程环境中,多项式求和是一项常见的编程实践,它融合了数学理论、算法设计以及C语言的基础运用。此类程序可能包含对用户输入的多项式表达式进行解析,进而计算各项的总和。接下来将对这一主题进行深入阐述。 多项式在数学领域是一个基础性概念,它由常数、变量及指数通过线性方式组合而成,例如表达式`3x^2 + 2x - 1`。在C语言环境下,我们可以借助数组来表示多项式的各项系数,例如通过定义一个整型数组`int coefficients[] = {3, 2, -1}`来保存表达式`3x^2 + 2x - 1`的系数值。 1. **多项式解析**: 解析多项式的过程通常需要从用户处获取输入数据,如表达式`3x^2 + 2x - 1`。在C语言中,可以利用`scanf()`函数来接收用户的输入。解析流程涉及到识别每个项的系数、变量及指数,这可能需要运用到字符串处理函数,例如使用`strtok()`函数来分割字符串,以及通过`atoi()`或`atof()`函数将字符串转换为数值类型。 2. **数据结构构建**: 为了高效地处理多项式,可以设计一个结构体用以存储每一项的系数和指数信息。例如: ```c typedef struct { int coefficient; int exponent; } Term; ``` 随后,可以选用链表或数组来存储这些结构体实例,以此来完整表示一个多项式。 3. **求和运算**: 求和操作可能包含两个阶段:(1) 对相同指数的项进行系数相加,(2) 将计算结果整合至最终的多项式表达式中。在处理同次幂项时,需要遍历两个多项式,识别出具有相同指数的项...

67,535

社区成员

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

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