关于spring、hibernate 整合错误,请大神们帮忙看看哪里出错了

在网上找了个项目,准备做 spring + hibernate 整合测试的时候,update()方法出现问题了。update()是用Spring+Hibernate,程序不报错,但是数据库里面的数据没有任何变化。save()是没有任何问题的,save()是
hibernate写的。


@RunWith(SpringJUnit4ClassRunner.class)  
@ContextConfiguration(locations="classpath:test.xml")
@Transactional
public class Testutil { 
    @Resource  
    private Date date;  
    @Resource
    private CategoryService categoryService;

    @Test  // 测试IOC
    public void test(){
        System.out.println(date);  }

    @Test  //测试Hibernate
    public void testhibernate(){
        CategoryService categoryService = new CategoryServiceImpl();
        Category category = new Category("男士休闲",true);
        categoryService.save(category);  }  

    @Test  // 测试 Hibernate + Spring 整合
    public void testSpringAndhibernate(){
        categoryService.update(new Category(1,"休闲女式",true));        
        System.out.println(".........");
    }
}

public class CategoryServiceImpl implements CategoryService {

    @Override
    public void save(Category category) {
        Session session = HibernateSessionFactory.getSession();
        try {
            // 使用 hibernate 进行数据库连接
            session.getTransaction().begin();
            session.save(category);
            session.getTransaction().commit();
            System.out.println("数据已经提交!");
        } catch (Exception e) {
            e.printStackTrace();
            throw new RuntimeException();
        } finally {
            HibernateSessionFactory.closeSession();
        }
    }

    // 整合 Spring + Hibernate
    private SessionFactory sessionFactory;

    public void setSessionFactory(SessionFactory sessionFactory) {
        this.sessionFactory = sessionFactory;
    }

    protected Session getSession() {
        return sessionFactory.getCurrentSession();
    }

    public void update(Category category) {
        this.getSession().update(category);
        System.out.println("-----");
    }

}
<bean id="date" class="java.util.Date"/>

    <bean id="categoryService" class="cn.it.shop.service.impl.CategoryServiceImpl">  
        <!-- 依赖的sessionFactory用我们之前配好的sessionFactory-->  
        <property name="sessionFactory" ref="sessionFactory" />
    </bean>



    <!-- com.mchange.v2.c3p0.ComboPooledDataSource类在c3p0-0.9.5.1.jar包的com.mchange.v2.c3p0包中 -->  
    <bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">  
        <property name="driverClass" value="com.mysql.jdbc.Driver" />  
        <property name="jdbcUrl" value="jdbc:mysql://localhost:3306/shop" />  
        <property name="user" value="root" />  
        <property name="password" value="" />  
    </bean> 


    <!-- org.springframework.orm.hibernate4.LocalSessionFactoryBean类在spring-orm-4.2.4.RELEASE.jar包的org.springframework.orm.hibernate4包中 -->  
    <bean id="sessionFactory" class="org.springframework.orm.hibernate4.LocalSessionFactoryBean">  
        <property name="dataSource" ref="dataSource" />  
        <!-- 加载hibernate配置文件 -->  
        <property name="configLocation" value="classpath:hibernate.cfg.xml" /> 
    </bean>  

        <!-- org.springframework.orm.hibernate4.HibernateTransactionManager类spring-orm-4.2.4.RELEASE.jar包的org.springframework.orm.hibernate4包中 -->  
    <bean id="transactionManager" class="org.springframework.orm.hibernate4.HibernateTransactionManager">  
        <property name="sessionFactory" ref="sessionFactory" />  
    </bean> 


    <tx:advice id="advice" transaction-manager="transactionManager">  
         <tx:attributes>  
              <tx:method name="save*" propagation="REQUIRED"/>  
              <tx:method name="update*" propagation="REQUIRED"/>  
              <tx:method name="delete*" propagation="REQUIRED"/>  
               <tx:method name="*" propagation="SUPPORTS"/>  
         </tx:attributes>  
    </tx:advice>


    <aop:config>  
        <aop:pointcut id="pointcut" expression="execution(* cn.it.shop.service.impl.*.*(..))" />  
        <aop:advisor advice-ref="advice" pointcut-ref="pointcut"/>

 </aop:config>

</beans>

请各位大神看看,是哪段代码有问题

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值