首先,我在当前的application.conf中设置的相关配置,实际上在Java/Scala Ebean documentation from Play中定义了很多:
db.default.driver=org.h2.Driver
db.default.url="jdbc:h2:mem:play"
db.default.user="sa"
db.default.password=""
ebean.default="models.*"
我正在运行Play Framework 2.0.4
在玩了Play之后,我为我的示例应用程序编写了几个集成测试。找到this关于如何使用Ebean为我的模型生成ddl代码的好例子,并决定尝试一下,但似乎我的Ebean配置缺少了一些东西。
我的代码几乎遵循上面的示例,但它是Scala:
def setUp = {
val server = Ebean.getServer("default")
...
val ddl = new DdlGenerator(server.asInstaceOf[SpiEbeanServer], new H2Platform, config)
...
}
调用Ebean.getServer("default")
会抛出此异常:
Could not create an instance of MyClassSpec caused by java.lang.RuntimeException: DataSource user is null?
我也在我的应用程序和Ebean中引用相同的数据源名称(“default”),我的测试代码在running(FakeApplication(additionalConfiguration = inMemoryDatabase("default")))
代码块中定义。
还有什么要配置的吗?谢谢!
答案 0 :(得分:1)
好吧,我按照here所述使用了ebean.properties文件。
datasource.default=default
datasource.default.username=sa
datasource.default.password=
datasource.default.databaseUrl=jdbc:h2:mem:tests;DB_CLOSE_DELAY=-1
datasource.default.databaseDriver=org.h2.Driver
datasource.default.minConnections=1
datasource.default.maxConnections=25
datasource.default.heartbeatsql=select 1
datasource.default.isolationlevel=read_committed
所以我的数据库(ebean)相关配置在另一个文件中设置,实际上需要在application.conf中定义ebeans.default="models.*"
并在Build.scala中定义ebeanEnabled := true
希望它也可以帮助别人!