2011-10-30 65 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