2017-08-15 20 views
0

我是新的hibernate.I創建一個表使用休眠。我可以在db中看到結果。但我的session.save(OBJ)仍然返回零,但它應該返回一個我猜。這是我的代碼:Session.save(obj)返回零

public static int register(User u) { 
    int i = 0; 
    Session session = new AnnotationConfiguration().configure().buildSessionFactory().openSession(); 
    try { 

     Transaction t = session.beginTransaction(); 
     // t.begin(); 

     i = (Integer) session.save(u); 
     System.out.println("Value of i is::"+(Integer)session.save(u)); 
     System.out.println(session.save(u).getClass().getName()); 
     t.commit(); 
     session.close(); 
    } 
    catch(RuntimeException e) { 
     session.getTransaction().rollback(); 
     throw e; 
    } 

    return i; 
} 

我使用JSP和創建一個表單,然後傳遞數據。有人可以幫我弄這個嗎?

+0

*雖然它應該返回一個我猜*:你猜的基礎是什麼? Hibernate的文檔和你的實體的代碼(你沒有發佈的內容會讓你認爲它應該返回1嗎?另外,文檔是否建議在每次需要會話時創建一個全新的會話工廠? –

+0

can you u發佈你的用戶模型在這裏。你使用什麼類型的生成器來自動生成主鍵,或者試試這個Integer id =(Integer)session.save(u); –

回答

0

試試這一個 Integer id =(Integer)session.save(u);