2012-04-25 69 views
1

我Bootstrap.java是:玩!始終加載初始數據

@OnApplicationStart 
public class Bootstrap extends Job { 

    public void doJob() { 
     // Check if the database is empty 
     System.out.println("========================================================" + User.count()); 
     if(User.count() == 0) { 
      Fixtures.loadModels("initial-data.yml"); 
     } 
     System.out.println("========================================================" + User.count()); 
    } 
} 

我每次重新啓動應用程序,數據庫將被清理,那麼User.count()是0,所以它重新加載初始數據,並且所有我的User的更改丟失了。有誰能夠幫助我?謝謝。

編輯

在我設置我的數據庫這樣的application.conf:

%server01.application.mode=PROD 
%server01.db=mysql:root:[email protected] 
%server01.jpa.ddl=create 
%server01.XForwardedSupport=127.0.0.1 
+0

你如何從命令行啓動你的應用程序? – Codemwnci 2012-04-25 06:18:09

回答

3

在你的conf,嘗試生成DDL設置爲update(或validate),而不是create

%server01.jpa.ddl=update 

this doc看看。

+0

謝謝。你已經明白了!也許我應該在產品環境中使用jpa.dll = none? – 2012-04-25 08:55:08

+0

我會在產品中使用'validate',以檢查我的對象模型是否與關係模型一致。 – 2012-04-25 16:07:17

0

數據庫中存儲可能是設置。請檢查application.conf並使用持久數據庫。

如果我記得你只需要取消註釋幾行。

+0

感謝您的回覆。但我正在使用持久數據庫並以prod模式運行我的應用程序。 – 2012-04-25 03:36:30