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

来源:互联网 发布:ds18b20数据手册pdf 编辑:程序博客网 时间:2024/04/29 06:36

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

@RunWith(SpringJUnit4ClassRunner.class)  @ContextConfiguration(locations="classpath:test.xml")@Transactionalpublic 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>

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

0 0
原创粉丝点击