子项目 Play 2.4 中的 Ebean 增强
Ebean enhancement in subproject Play 2.4
我有一个连接到两个数据库的应用程序,默认数据库模型在根项目中,第二个数据库模型在子项目中。
我的项目,一个简短的文件夹结构看起来像这样
[root]/build.sbt
[root]/conf/application.conf
[root]/app/models/Author.java (and other models)
[root]/module/build.sbt
[root]/module/app/mods/User.java
并且 application.conf 已经像这样配置了 ebean
db.default.driver=org.postgresql.Driver
db.default.url="jdbc:postgresql://localhost:5432/main"
db.default.username=postgres
db.default.password="password"
db.second.driver=org.postgresql.Driver
db.second.url="jdbc:postgresql://localhost:5432/second"
db.second.username=postgres
db.second.password="password"
ebean.default = ["models."]
ebean.second = ["mods."]
和 build.sbt 这样的:
lazy val module = project.in(file("module")).enablePlugins(PlayJava, PlayEbean, PlayEnhancer)
lazy val root = (project in file(".")).enablePlugins(PlayJava, PlayEbean)
.aggregate(module)
.dependsOn(module)
但是当我 运行 应用程序时我得到这个异常
Error injecting constructor, java.lang.IllegalStateException: Bean class mods.User is not enhanced?
显然子项目中的模型没有得到增强。我如何让它工作?
尝试在您的子项目的 build.sbt
中添加以下内容:
playEbeanModels in Compile := Seq("mods.*")
这会告诉 Play Framework 在查找模型时也会查看您的子项目 类。您可以在 Play Framework Documentation.
中的 "Configuring the sbt plugin" 段中找到更长的解释
这个解决方案对我有用(在重新加载和编译项目之后)。
我有一个连接到两个数据库的应用程序,默认数据库模型在根项目中,第二个数据库模型在子项目中。 我的项目,一个简短的文件夹结构看起来像这样
[root]/build.sbt
[root]/conf/application.conf
[root]/app/models/Author.java (and other models)
[root]/module/build.sbt
[root]/module/app/mods/User.java
并且 application.conf 已经像这样配置了 ebean
db.default.driver=org.postgresql.Driver
db.default.url="jdbc:postgresql://localhost:5432/main"
db.default.username=postgres
db.default.password="password"
db.second.driver=org.postgresql.Driver
db.second.url="jdbc:postgresql://localhost:5432/second"
db.second.username=postgres
db.second.password="password"
ebean.default = ["models."]
ebean.second = ["mods."]
和 build.sbt 这样的:
lazy val module = project.in(file("module")).enablePlugins(PlayJava, PlayEbean, PlayEnhancer)
lazy val root = (project in file(".")).enablePlugins(PlayJava, PlayEbean)
.aggregate(module)
.dependsOn(module)
但是当我 运行 应用程序时我得到这个异常
Error injecting constructor, java.lang.IllegalStateException: Bean class mods.User is not enhanced?
显然子项目中的模型没有得到增强。我如何让它工作?
尝试在您的子项目的 build.sbt
中添加以下内容:
playEbeanModels in Compile := Seq("mods.*")
这会告诉 Play Framework 在查找模型时也会查看您的子项目 类。您可以在 Play Framework Documentation.
中的 "Configuring the sbt plugin" 段中找到更长的解释这个解决方案对我有用(在重新加载和编译项目之后)。