2015-08-16 78 views
1

Heys傢伙,播放框架2.4.x的 - 子項目與數據庫

我希望你能真正幫助我在遊戲框架2.4.x.子項目我正在開發一個Play項目(我稱它爲root)和一個子項目。兩者都有ebean模型,我想將這些模型保存在不同的數據庫中。我嘗試了很多可能性,但我無法解決這個問題。

  1. 定義數據庫並在[根] /conf/application.conf的Ebean配置,而另一個在[根] /modules/sub/conf/application.conf(具有不同的數據庫的名稱)。然後我得到一個錯誤「CreationException:無法創建注入器,請參閱以下錯誤:1)注入構造函數java.lang.IllegalStateException的錯誤:Bean類models.RootModel沒有增強?
  2. 在根配置中定義一個數據庫和Ebean配置,並在具有相同數據庫名稱的子項目配置中定義一個數據庫和Ebean配置。然後我得到一個錯誤「PersistenceException:subproject.models.SubModel是不是一個實體Bean註冊與此服務器?」
  3. 定義數據庫和Ebean配置在根項目和它的配置定義子項目的數據庫,同樣的錯誤就像1
  4. 在我的子項目,錯誤沒有配置:「CreationException:無法創建噴油器,請參閱以下錯誤:1)錯誤注入構造函數,java.lang.IllegalStateException:Bean類subproject.models.SubModel未被增強?「

如何爲我的Play Framework項目及其子項目設置數據庫?

我的文件在這些文件夾:

[root]/build.sbt 
    [root]/conf/application.conf 
    [root]/app/models/RootModel.java 
    [root]/modules/sub/conf/application.conf 
    [root]/modules/sub/conf/app/models/subproject/models/SubModel.java 

我的[根] /build.sbt:

import com.typesafe.play.sbt.enhancer.PlayEnhancer 

    name := """rootproject""" 

    version := "1.0" 

    lazy val root = (project in file(".")) 
     .enablePlugins(PlayJava, PlayEbean, PlayEnhancer) 
     .aggregate(sub) 
     .dependsOn(sub) 
     .settings(
      TwirlKeys.templateImports += "subproject.models._" 
     ) 

    lazy val sub = project.in(file("modules/sub")) 
     .enablePlugins(PlayJava, PlayEbean, PlayEnhancer) 

    scalaVersion := "2.11.6" 

定義在application.conf數據庫和ebean配置:

db.default.driver=org.h2.Driver 
    db.default.url="jdbc:h2:./db/default;DB_CLOSE_DELAY=-1" 
    db.default.username="sa" 
    db.default.password="..." 

    db.sub.driver=org.h2.Driver 
    db.sub.url="jdbc:h2:./db/sub;DB_CLOSE_DELAY=-1" 
    db.sub.username="sa" 
    db.sub.password="..." 

    ebean.default=["models.*"] 
    ebean.sub=["subproject.models.*"] 

回答