3

まず、現在の application.conf で設定した関連構成です。これは、実際にはPlay の Java/Scala Ebean ドキュメントでほとんど定義されています。

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 をいじった後、サンプル アプリの統合テストをいくつか書きました。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 の両方で同じデータソース名 (「デフォルト」) を参照しすぎており、テスト コードはrunning(FakeApplication(additionalConfiguration = inMemoryDatabase("default")))コード ブロック内で定義されています。

他に設定することはありますか? ありがとうございました!

4

1 に答える 1

1

ここで説明されているように、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)関連の構成は別のファイルに設定されており、実際にebeans.default="models.*"は application.conf とebeanEnabled := trueBuild.scalaで定義する必要があります

それも誰かに役立つことを願っています!

于 2012-11-06T00:35:30.703 に答える