2013-04-22 83 views
0

我Hibernate.xml初學者:與Hibernate 4泉懷疑

<bean id="transactionManager" 
    class="org.springframework.orm.hibernate4.HibernateTransactionManager"> 
    <property name="sessionFactory" ref="sessionFactory" /> 
</bean> 

<tx:annotation-driven transaction-manager="transactionManager" /> 

我控制器

@RequestMapping("/") 
public String index() { 
    Category category = new Category(); 
    category.setName("Hello"); 
    categoryDao.saveCategory(category); 
    return "index"; 
} 

吾道

@Transactional 
public void saveCategory(Category category) { 
    Session session = sessionFactory.getCurrentSession(); 
    session.save(category); 
    Category category2 = (Category) session.get(Category.class, 
      new Integer(0)); 

    System.out.println("xxxx" + category2.getName()); 
} 

我跳過目前用於測試目的我的BO。否則我去哪裏?我的輸出應該是xxxxParent,它是id = 0處的類別名稱,但是它顯示從Controller傳遞的xxxxHello。否則插入工作正常。在嘗試通過Hibernate訪問數據庫的方式中也存在任何錯誤。我的意思是使用交易註釋或開幕式。

編輯

當我刪除代碼保存正確的輸出顯示新的類別。在檢查控制檯以前只有插入工作,但現在選擇也工作。

+0

檢查此鏈接哪個有非常好的解釋和Spring和Hibernate集成http://www.javabeat.net/2007/10/integrating-spring-framework-with-hibernate-orm-framework/ – Krishna 2013-04-23 11:16:48

回答

1

我覺得代碼

Category category = new Category(); 
category.setName("Hello");` 

正在創建ID爲0的實體(整數默認爲0,如果不申報),並更新在數據庫中現有的實體。我沒有看到你明確地在這裏設置ID。請設置ID並查看。

+0

這太棒了... – 2013-04-22 13:55:17