2012-04-25 66 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