私はDB内のあるオブジェクト(Fight)を見つけて、その存在に基づいてこの特定のオブジェクトを返すか、DB内に新しいオブジェクトを作成して新しく作成したオブジェクトを返したいと思います。Scalaの将来の内部の歩み
def findOrCreateFight(firstBoxer: BoxersRow, secondBoxer: BoxersRow, eventDate: java.sql.Date): Future[FightsRow] = {
for {
fight <- findByBoxersAndDate(firstBoxer, secondBoxer, eventDate)
} yield {
fight match {
case Some(f) => f
case None => createAndFindFight(firstBoxer, secondBoxer, eventDate)
}
}
}
findByBoxersAndDate関数はオブジェクト将来[FightsRow]オプション]を返し、createAndFindFight機能が将来[FightsRow]返す:私は、次の機能を実装しました。コンパイラは、createAndFindFight関数の行にエラーを表示します。
タイプが不一致です。見つかった: models.Tables.FightsRow
OKをので、私は 'ケースなし' で、この将来の完成結果を取得する必要があります: scala.concurrent.Futureは[models.Tables.FightsRow]必要。私はonComplete関数について考えましたが、Unitを返します.FitsRowオブジェクトは必要ありません。最高のスケーラブルな効果を得るために私の機能を修正する方法はありますか? :)
よろしく
それは動作します!私は本当にあなたの助けに感謝します! – Gandalf
@ガンダルフあなたの次のステップは、便利な回答をアップアップし、最高のものを受け入れることです。 –