我尝试将用户保存到数据库,我使用带有嵌入式(本地)连接的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/

10-13 04:23