2014-09-30 18 views
0

我嘗試用戶保存到數據庫中,我使用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> 
+0

remove'AUTO_SERVER = true;'然後重試。 – Neeraj 2014-09-30 11:25:52

回答

1

H2是它在磁盤上存儲不列入記錄內存數據庫。您可以檢索您的記錄,直到數據庫正在運行。當您重新啓動數據庫或重新啓動系統時,所有數據都將丟失。 http://www.h2database.com/html/main.html

+0

告訴H2將數據庫保存到磁盤是完全可能的,但這不是默認設置。 – chrylis 2014-09-30 09:52:50

相關問題