对db的更改不会保存到下次运行?

时间:2014-09-30 09:42:20

标签: java database hibernate

我尝试将用户保存到数据库,我使用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>

1 个答案:

答案 0 :(得分:1)

H2在内存数据库中,它不会在磁盘上存储记录。您可以检索您的记录,直到数据库正在运行。当您重新启动数据库或重新启动系统时,所有数据都将丢失。 http://www.h2database.com/html/main.html