我们项目是几个人一起写的,用的是同一套数据库,为什么现在集成到一起了,在用别人的写的后台管理的代码插入到数据库的数据,我的子系统登陆后不能立即显示,而需要在MyEclipse中重新发布一下项目才能读取出来。为什么啊,哪位大侠能解释一下可能的情况,小弟不甚感激!!!

解决方案 »

  1.   

    这块是事物控制:
    <!-- 事务管理-->
    <bean id="txManager"
    class="org.springframework.orm.hibernate3.HibernateTransactionManager">
    <property name="sessionFactory" ref="sessionFactory" />
    </bean>

    <tx:advice id="txAdvice" transaction-manager="txManager">
    <tx:attributes>
    <tx:method name="add*" propagation="REQUIRED" />
    <tx:method name="del*" propagation="REQUIRED" />
    <tx:method name="update*" propagation="REQUIRED" />
    <tx:method name="*" read-only="true"/>
    </tx:attributes>
    </tx:advice> <aop:config>
    <aop:pointcut id="bussinessService"
    expression="execution(public * com.xdsc.service.yjssx_system.*.*(..))" />
    <aop:advisor pointcut-ref="bussinessService"
    advice-ref="txAdvice" />
    </aop:config>
      

  2.   

    <!-- 事务管理-->
    <bean id="txManager"
    class="org.springframework.orm.hibernate3.HibernateTransactionManager">
    <property name="sessionFactory" ref="sessionFactory" />
    </bean><tx:advice id="txAdvice" transaction-manager="txManager">
    <tx:attributes>
    <tx:method name="add*" propagation="REQUIRED" />
    <tx:method name="del*" propagation="REQUIRED" />
    <tx:method name="update*" propagation="REQUIRED" />
    <tx:method name="*" read-only="true"/>
    </tx:attributes>
    </tx:advice><aop:config>
    <aop:pointcut id="bussinessService"
    expression="execution(public * com.xdsc.service.yjssx_system.*.*(..))" />
    <aop:advisor pointcut-ref="bussinessService"
    advice-ref="txAdvice" />
    </aop:config>
      

  3.   

    用hibernate做数据库的处理,会不会是配置的问题
      <property name="hbm2ddl.auto">create</property>这个属性的问题
    也有可能是缓存的问题,你可以设置不缓存试试
      

  4.   

    你不需要重起项目也能看到,只不过要等,HIBERNATE不是你插入了就直接在数据库了,他只是存放在他自己的缓存里,然后再统一更新数据库,而他自己是能看到的,因为读的都是缓存。
      

  5.   

    这块是事物控制:
    <!-- 事务管理-->
    <bean id="txManager"
    class="org.springframework.orm.hibernate3.HibernateTransactionManager">
    <property name="sessionFactory" ref="sessionFactory" />
    </bean><tx:advice id="txAdvice" transaction-manager="txManager">
    <tx:attributes>
    <tx:method name="add*" propagation="REQUIRED" />
    <tx:method name="del*" propagation="REQUIRED" />
    <tx:method name="update*" propagation="REQUIRED" />
    <tx:method name="*" read-only="true"/>
    </tx:attributes>
    </tx:advice><aop:config>
    <aop:pointcut id="bussinessService"
    expression="execution(public * com.xdsc.service.yjssx_system.*.*(..))" />
    <aop:advisor pointcut-ref="bussinessService"
    advice-ref="txAdvice" />
    </aop:config>应该是事务问题吧,我们在做项目时遇到跟你的算差不多吧,因为当时是我们的模块分的太细,造成事务配置漏洞,你们事务配的是接口吧com.xdsc.service.yjssx_system这个文件夹下是否还有子文件夹,也就是说你们的接口类是否都在这个文件夹下,如果前缀一样,有子文件夹这样配置就会出现事务问题,可以这样配置
    <aop:pointcut id="bussinessService"
    expression="execution(public * com.xdsc.service.yjssx_system..*.*(..))" />
    <aop:advisor pointcut-ref="bussinessService"
    advice-ref="txAdvice" />
    看看你们的目录结构啊!