Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 对数据库的更改不保存到下一次运行?_Java_Database_Hibernate - Fatal编程技术网

Java 对数据库的更改不保存到下一次运行?

Java 对数据库的更改不保存到下一次运行?,java,database,hibernate,Java,Database,Hibernate,我尝试将用户保存到数据库,我使用H2和嵌入式(本地)连接 我运行代码:` HibernateUtil.buildSessionFactory(); SessionFactory fac = HibernateUtil.getSessionFactory(); Session session = fac.openSession(); org.hibernate.Transaction tr = session.beginTransaction(); sessi

我尝试将用户保存到数据库,我使用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());`
HibernateUtil.buildSessionFactory();
SessionFactory fac=HibernateUtil.getSessionFactory();
Session Session=fac.openSession();
org.hibernate.Transaction tr=session.beginTransaction();
session.save(角色);
session.getTransaction().commit();
tr=session.beginTransaction();
保存(库存);
session.getTransaction().commit();
tr=session.beginTransaction();
session.save(stock1);
session.getTransaction().commit();
session.beginTransaction();
List List=session.createQuery(“来自用户”).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());`
会话会话=fac.openSession(); org.hibernate.Transaction tr=session.beginTransaction(); List List=session.createQuery(“来自用户”).List(); session.getTransaction().commit(); session.close(); fac.close(); System.out.println(list.size())` 输出为0

因此,有关用户的数据不会保存到数据库中。可能是什么? 这是我的网址

<property name="hibernate.connection.url">
            jdbc:h2:./firstq000f0d020d11;AUTO_SERVER=true;</property>

jdbc:h2:./firstq000f0d020d11;AUTO_SERVER=true;

H2是内存数据库,它不在磁盘上存储记录。在数据库运行之前,您可以检索记录。重新启动数据库或重新启动系统时,所有数据都将丢失。

完全可以告诉H2将数据库保存到磁盘,但这不是默认值。remove
AUTO_SERVER=true并重试。