使用Play获取ebean数据源配置! 2

时间:2012-11-03 03:29:12

标签: scala configuration playframework ebean

首先,我在当前的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?

嗯,也许我有些不对劲,但我相信db.default。*属性已经设置了所需的Ebean。

我也在我的应用程序和Ebean中引用相同的数据源名称(“default”),我的测试代码在running(FakeApplication(additionalConfiguration = inMemoryDatabase("default")))代码块中定义。

还有什么要配置的吗?谢谢!

1 个答案:

答案 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

希望它也可以帮助别人!