次のように定義された滑らかな特定のクエリがあります。
var query = for {
a <- Assets if a.ownerId === partyIdLoggedInUser || a.userId === partyIdLoggedInUser
m <- a.model
l <- a.location
ad <- l.address
sl <- SpecificLocations if sl.assetId === a.id
} yield (a._type ~ m.make ~ m.model ~ a.serialNumber ~
a.linkQualityValue.? ~ a.activationDate.? ~ l.id ~
l.description ~ ad.id ~ ad.street ~ ad.number ~
ad.zipcode ~ ad.city ~ ad.country ~ ad.geoLocationId.? ~
sl.building.? ~ sl.floor.? ~ sl.room.? ~ sl.other.?)
後で、いくつかのパラメーターに基づいて、いくつかのパターン マッチングを行い、いくつかの追加フィルターをこのクエリに適用します。
query = serialNumber match {
case Some(serialNumber) => query.where(a => a._4 === serialNumber)
case None => query
}
さて、マップを使用してこれらのチェックを短くしたいと思います。
query = serialNumber.map(s => query.where(a => a._1 === s))
私のマップ ソリューションが受け入れられない理由がわかりません。問題はありますか?
それは言うfound Option[Query[....]] but required Query[...]