次のコードブロックがエラーでビルドに失敗します。エラー値[オプション]
value flatMap is not a member of Product with Serializable
[error] if (matchingUser.isDefined) {
は、ここでは、コードです:
for {
matchingUser <- userDao.findOneByEmail(email)
user <- {
if (matchingUser.isDefined) {
matchingUser.map(u => {
// update u with new values...
userDao.save(u)
u
})
} else {
val newUser = new User(email)
userDao.create(newUser)
newUser
}
}
} yield user
方法userDao.findOneByEmail(email) returns an
未来[オプション[ユーザ]] object. My Google searches are only about
いずれかwith
右and
左型。
私はこれを適切な方法で行っていないかもしれません。適切にこれを行う方法を教えてください。
あなたは永続/更新メソッドで正しいですが、Future [Unit]の代わりに永続/更新されたレコードを返すべきです。私のコードが投稿されたものと同じくらいシンプルであれば、残念ですが、現実には私のコードを簡単に単純化して投稿しました。折り畳み方法についての良い点も、私はあなたの答えまでそれを知らなかった。私はすべてのリファクタリングが完了したらすぐにあなたの答えを受け入れます。ありがとう! – Jeep87c