私はAnormと一緒にプレイ2を使用してデータベースアクセスを管理しています。私がやっている共通のパターンはこれです:自分自身を繰り返さずにクロージャからデータを渡す方法
val (futureChecklists, jobsLookup) =
DB.withConnection { implicit connection =>
val futureChecklists = futureChecklistRepository.getAllHavingActiveTemplateAndNonNullNextRunDate()
val jobsLookup = futureChecklistJobRepository.getAllHavingActiveTemplateAndNonNullNextRunDate()
.groupBy(_.futureChecklist.id)
.withDefaultValue(List.empty)
(futureChecklists, jobsLookup)
}
私は自分自身を繰り返さなければならないので、ちょっと変わっているようです。また、私が外のスコープで必要とするいくつかの変数を持っていれば、ややこしいことがありますが、私は接続を開いたままにしたくありません。
var
を使用することなくこの情報を簡単に戻すことはできますか?私は最初と最後に同じタプルを持っていないその方法
val futureChecklists
val jobsLookup
DB.withConnection { implicit connection =>
futureChecklists = futureChecklistRepository.getAllHavingActiveTemplateAndNonNullNextRunDate()
jobsLookup = futureChecklistJobRepository.getAllHavingActiveTemplateAndNonNullNextRunDate()
.groupBy(_.futureChecklist.id)
.withDefaultValue(List.empty)
}
:私が望む何
のようなものです。
私はあなたが達成したいものの擬似コードを示すことができたならば、それは役に立つかもしれないと思います。 – TeWu
@TeWuは確かに、私はあなたがカスタムローンのパターンを使用することができ、いくつかの – cdmckay
を追加します。例えば 'DEF withCheckAndJob [T](F:(CheckType、JOBTYPE)=> T)よりもT = ???あり' – cchantep