我有这行代码可以将员工保存到表中。代码运行正常。
Employee e1=new Employee();
e1.setId(115);
e1.setFirstName("sonoo");
e1.setLastName("jaiswal");
session.persist(e1);//persisting the object
t.commit();//transaction is commited
问题:如果我用其他行替换这些行来列出表中的员工,我不会得到任何结果,此外,表会变空,因此刚刚插入的员工数据不在表中 O_o
有什么帮助吗?
这里有完整的代码片段:
Configuration cfg=new Configuration();
cfg.configure("hibernate.cfg.xml");//populates the data of the configuration file
//creating seession factory object
SessionFactory factory=cfg.buildSessionFactory();
//creating session object
Session session=factory.openSession();
//creating transaction object
Transaction t=session.beginTransaction();
/*
Employee e1=new Employee();
e1.setId(115);
e1.setFirstName("sonoo");
e1.setLastName("jaiswal");
session.persist(e1);//persisting the object
t.commit();//transaction is commited
*/
List result = session.createQuery( "from Employee" ).list();
//Query query = session.createQuery("from Employee");
for ( Employee employee : (List<Employee>) result ) {
JOptionPane.showMessageDialog(null, employee.getFirstName()); //<- THIS IS NOT BEING CALLED
//System.out.println( "Employee (" + employee.getFirstName());
}
session.close();
System.out.println("successfully saved");
最佳答案
我敢打赌,您的 hibernate.cfg.xml
中有 hibernate.hbm2ddl.auto=create-drop
,因此当您重新启动应用程序时,DB 会被删除,从头开始创建。尝试坚持、提交、打开新事务(或不)并再次列出 - 我打赌将会有持久的Employee
。从配置文件远程它或更改为验证
。
关于java - Hibernate:尝试列出表后表变空,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34314939/