2011-10-30 67 views
1

林與Hibernate和MySQL的工作,我得到它的工作通過休眠把數據在數據庫中,但是當我嘗試找回它總是返回null數據...session.get()在休眠返回null

Session session = HibernateUtil.getSessionFactory().getCurrentSession(); 
session.beginTransaction(); 
User user = (User) session.get(User.class, username); 
session.getTransaction().commit(); 

用戶是一個帶註釋的類,但變量用戶將始終爲空,即使我把我知道的用戶名存在於數據庫中。用戶名是表的ID,所以應該找到它

編輯

它可以是我在配置使用<property name="hbm2ddl.auto">create</property>?我應該如何使用數據庫才能創建表,如果它不存在?

+0

在session.get的'時()'產生什麼SQL你有'hibernate.show.sql'設置爲true – frictionlesspulley

+0

謝謝,當我把它放在我獲取: Hibernate:刪除表如果存在用戶 Hibernate:創建表用戶(用戶名varchar(255)不爲空,年齡整數,名稱varchar(255),密碼varchar(255),性別varchar(255),姓氏varchar 255),主鍵(用戶名)) 當它這樣做:Session session = HibernateUtil.getSessionFactory()。getCurrentSession(); 因此,它重新創建表:S – Afra

回答

1

create schema選項將刪除所有現有的數據!
退房文檔:here

下面是指定的選項:

  • validate:驗證模式,但是沒有改變對數據庫進行。
  • update:更新架構。
  • create:創建模式,破壞以前的數據。
  • create-drop:在會話結束時刪除架構。

嘗試使用update版本。其餘的代碼片段對我來說看起來很好。

希望這有助於

+0

結帳http://stackoverflow.com/questions/438146/hibernate-question-hbm2ddl-auto-possible-values-and-what-they-do這是沿着相同的線問。 – frictionlesspulley

+0

謝謝,它的工作! 使用這種方法進行認真的開發和部署是不是一個好主意? – Afra