我尝试将用户保存到数据库,我使用带有嵌入式(本地)连接的H2
我运行代码:
HibernateUtil.buildSessionFactory();
SessionFactory fac = HibernateUtil.getSessionFactory();
Session session = fac.openSession();
org.hibernate.Transaction tr = session.beginTransaction();
session.save(role);
session.getTransaction().commit();
tr = session.beginTransaction();
session.save(stock);
session.getTransaction().commit();
tr = session.beginTransaction();
session.save(stock1);
session.getTransaction().commit();
session.beginTransaction();
List<User> list = session.createQuery("FROM User").list();
session.getTransaction().commit();
session.close();
fac.close();
System.out.println(list.size());`
输出为:2
但是当我跑完之后:
Session session = fac.openSession();
org.hibernate.Transaction tr = session.beginTransaction();
List<User> list = session.createQuery("FROM User").list();
session.getTransaction().commit();
session.close();
fac.close();
System.out.println(list.size());`
输出为0
因此,有关用户的数据不会保存到db。会是什么
这是我的网址
<property name="hibernate.connection.url">
jdbc:h2:./firstq000f0d020d11;AUTO_SERVER=true;</property>
最佳答案
H2在内存数据库中,它不在磁盘上存储记录。您可以检索记录,直到数据库运行。当您重新启动数据库或重新启动系统时,所有数据都会丢失。
http://www.h2database.com/html/main.html
关于java - 对db的更改不会保存到下一次运行吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/26117619/