我调用
HibernateTemplate
里面的 deleteall 
但 为什么  不处理  
下面 SQL 没有delete....
也没有报错
有什么办法 能查 那里出问题了吗?
我直接掉用 deleteall 方法 会 进行 处理
我复杂 调用的时候就 不会 处理 
也 不报错 。

解决方案 »

  1.   

    代码  太多  了  
    其实    就是 没提交  
    我想问下  大概 什么原因  会产生 这个 问题
        public void testUpdateItemMapping(ItemMapping itemMapping){
            ItemMapping itemMappingInDataBase = itemMappingDAO.findById (itemMapping.getId ());
            Set<ItemMappingProps> itemMappingPropss = itemMapping.getItemMappingPropss ();
            Set<ItemMappingProps> itemMappingPropssInDataBase = itemMappingInDataBase.getItemMappingPropss ();
            List<ItemMappingProps> itemMappingPropsDelete = new ArrayList <ItemMappingProps>();
            List<ItemMappingProps> itemMappingPropsSaveOrUpdate = new ArrayList <ItemMappingProps>();
            if(itemMappingPropss.size () == 0 || itemMappingPropss == null){
                itemMappingPropsDelete.addAll (itemMappingPropssInDataBase);
            }else{
                for(ItemMappingProps itemMappingPropsInDataBase : itemMappingPropssInDataBase){
                    boolean flag = false;
                    Iterator<ItemMappingProps> it = itemMappingPropss.iterator();
                    while(it.hasNext()){
                        ItemMappingProps itemMappingProps = it.next();
                        if(itemMappingProps.getId () == null || itemMappingProps.getId () == 0){
                            itemMappingPropsSaveOrUpdate.add (itemMappingProps);
                            it.remove ();
                            continue;
                        }
                        if(itemMappingProps.getId ().intValue () == itemMappingPropsInDataBase.getId ().intValue ()){
                            itemMappingPropsSaveOrUpdate.add (itemMappingProps);
                            it.remove ();
                            flag = true;
                            break;
                        }
                     }
                    if(!flag){
                        itemMappingPropsDelete.add (itemMappingPropsInDataBase);
                    }
                }
            }
            itemMappingDAO.clear ();
            itemMappingPropsDAO.deleteAll (itemMappingPropsDelete);
    //        itemMappingPropsDAO.saveOrUpdateAll (itemMappingPropsSaveOrUpdate);
        }
        
        public void testUpdateItem(Item item){
            Item itemInDataBase = itemDAO.findById (item.getId ());
            Set<ItemMapping> itemMappings = item.getItemMappings ();
            Set<ItemMapping> itemMappingsInDataBase = itemInDataBase.getItemMappings ();
            List<ItemMapping> itemMappingDelete = new ArrayList <ItemMapping>();
            List<ItemMapping> itemMappingSaveOrUpdate = new ArrayList <ItemMapping>();
            if(itemMappings == null || itemMappings.size () == 0 ){
                itemMappingDelete.addAll (itemMappingsInDataBase);
            }else{
                for(ItemMapping itemMappingInDataBase : itemMappingsInDataBase){
                    boolean flag = false;
                    Iterator<ItemMapping> it = itemMappings.iterator();
                    while(it.hasNext()){
                        ItemMapping itemMapping = it.next();
                        if(itemMapping.getId () == null || itemMapping.getId () == 0){
                            itemMappingSaveOrUpdate.add (itemMapping);
                            it.remove ();
                            continue;
                        }
                        if(itemMapping.getId ().intValue () == itemMappingInDataBase.getId ().intValue ()){
                            itemMappingSaveOrUpdate.add (itemMapping);
                            it.remove ();
                            flag = true;
                            testUpdateItemMapping(itemMapping);
                            break;
                        }
                     }
                    if(!flag){
                        itemMappingDelete.add (itemMappingInDataBase);
                    }
                }
            }
            itemDAO.clear ();
    //        itemMappingDAO.deleteAll (itemMappingDelete);
    //        itemMappingDAO.saveOrUpdateAll (itemMappingSaveOrUpdate);
        }
    后面调用了   
    public void deleteAll(List<ItemMappingProps> itemMappingsProps){
            getHibernateTemplate().deleteAll (itemMappingsProps);
        }对象 传过来了  但是   HIBERNATE   不处理  是什么原因
      

  2.   

    我再getHibernateTemplate().deleteAll (itemMappingsProps);
    加了一句  这个 就行了 
    getHibernateTemplate ().flush ();
    那为什么不刷  会不执行呢 ?
    有谁  能帮我解释下 
      

  3.   

    撒 意思   要看事务的配置 ?
    <bean id="transactionManager"
    class="org.springframework.orm.hibernate3.HibernateTransactionManager">
    <property name="sessionFactory" ref="sessionFactory" />
    </bean>
    <bean id="transactionInterceptor"
    class="org.springframework.transaction.interceptor.TransactionInterceptor">
        <!--  事务拦截器bean需要依赖注入一个事务管理器 -->
    <property name="transactionManager" ref="transactionManager" />
    <property name="transactionAttributes">
        <!--  下面定义事务传播属性-->
    <props>
    <prop key="find*">PROPAGATION_REQUIRED,readOnly</prop>
    <prop key="finds*">PROPAGATION_REQUIRED</prop>
    <prop key="save*">PROPAGATION_REQUIRED,-Exception</prop>
    <prop key="delete*">PROPAGATION_REQUIRED,-Exception</prop>
    <prop key="update*">PROPAGATION_REQUIRED,-Exception</prop>
    <prop key="merge*">PROPAGATION_REQUIRED,-Exception</prop>
    <prop key="*">PROPAGATION_REQUIRED,-Exception</prop>
    </props>
    </property>
    </bean>    <!-- 定义BeanNameAutoProxyCreator-->
    <bean
    class="org.springframework.aop.framework.autoproxy.BeanNameAutoProxyCreator">
        <!--  指定对满足哪些bean name的bean自动生成业务代理 -->
    <property name="beanNames">
    <list>
    <value>*ServiceImpl</value>
    <value>*Service</value>
    </list>
    </property>
            <!--  下面定义BeanNameAutoProxyCreator所需的事务拦截器-->
    <property name="interceptorNames">
    <list>
                    <!-- 此处可增加其他新的Interceptor -->
                    <value>serviceInterceptor</value>
    <value>transactionInterceptor</value>
    <value>exceptionInterceptor</value>
    </list>
    </property>
    </bean>