事务没有commit -那是代码的事 贴点代码吧

解决方案 »

  1.   

    jta 事务,全部容器控制,代码中没有涉及事务控制。
      

  2.   

    贴点“hibernate save 操作保存一个对象”的代码?
    @Transaction有加?
      

  3.   

    你要在spring配置文件中配置你的事务处于你的DAO这一层,然后你hibernate操作save之后,调用flesh方法,再使用你的步骤2就可以看到步骤1中的save的数据了拿我项目中用到的实际给你做个参考:
    <!-- 支持 @AspectJ 标记-->
    <aop:aspectj-autoproxy /><!-- 以AspectJ方式 定义 AOP -->
    <aop:config>
      <aop:advisor pointcut="execution(* com.xxx..*.manager.*Manager.*(..))" advice-ref="txAdvice" />
    </aop:config>
    <!-- 基本事务定义,使用transactionManager作事务管理,默认get*方法的事务为readonly,其余方法按默认设置.
    默认的设置请参考Spring文档事务一章. -->
    <tx:advice id="txAdvice">
      <tx:attributes>
        <tx:method name="get*" read-only="true" />
        <tx:method name="find*" read-only="true" />
        <tx:method name="*" />
      </tx:attributes>
    </tx:advice>注意,我的项目事务是定义在manager一层的,你要改成你的dao层,配置文件运行通配符配置
      

  4.   

    多谢楼上的哥们,说的是flush方法吧。我试过了,不起作用。。两个操作不是基于一个接连,
    代码就是这样的
    xxDAO.insert(entityA);//保存对象A
    xxxDAO.insert(entityB);//保存对象B
    A与B 是O -N的关系
    //构建一个jdbchelper类
    xxxJDBC jdbc=new xxxJDBC();
    jdbc.executequery(entityA.ID);//执行查询
    //有没有根本的解决方法能让上面的两行代码行提交呢。。
      

  5.   

    如果采用jta 事务,就不该调用 hibernate的事务功能了 你看看你又没又这么做?
      

  6.   

    据我的观点来看。现在客户端的一个请求就是相当于是一个次事务调用了,没有使用hibernate功能,hibernate只是负责持久。。具体的事务控制还是通过spring 配置来的
    <bean id="XXXService"
      class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean">
      <property name="transactionManager">
       <ref bean="transactionManager" />
      </property>
      <property name="transactionAttributes">
       <props>
        <prop key="*">PROPAGATION_REQUIRED,-Exception</prop>
        <prop key="query*">readOnly</prop>
        <prop key="search*">readOnly</prop>
        
       </props>
      </property>
      

  7.   

    一起来建设我们的Software   Coffee   House(SCH) 
    CSDN群 招募中……
      

  8.   

    TransactionProxyFactoryBean和 WebSphereTransctionManagerFactoryBean重复了 
      

  9.   

    TransactionProxyFactoryBean和 WebSphereTransctionManagerFactoryBean重复,建议save后flush()下!
      

  10.   

    TransactionProxyFactoryBean和 WebSphereTransctionManagerFactoryBean重复 不明白什么意思,还请指点
      

  11.   

     
    呵 是这样的 你提到WAS 6.0,关于jta 你是否用到了 WebSphereTransctionManagerFactoryBean?
      

  12.   

    如果重复会出现什么问题?你提到的flush()我已经试过了。没有效果
    //获取当前session 
    public static boolean flushCurrentSession(){
    SessionFactory sessionFactory=(SessionFactory)getBeanByName("sessionFactory");
    Session session= sessionFactory.getCurrentSession();
    //强制将数据同步到数据库
    session.flush();
    return true;
    }