我有一個查詢,我有條件地增強依賴計數和偏移參數的存在或缺失。有條件地增強ScalaQuery查詢
val retrieveCustomer: (Option[String], Option[Int], Option[Int]) => List[Customer] = { (customerId : Option[String], count : Option[Int], offset : Option[Int]) =>
val initialQ: Query[CustomerTable.type, Customer] = customerId.map(c => CustomerTable.where(_.id === c)).getOrElse(CustomerTable.map { c => c })
val qPlusOffset = offset.map (offset => initialQ.drop(offset)).getOrElse(initialQ)
val qoPlusLimit = count.map(count => qPlusOffset.take(count)).getOrElse(qPlusOffset)
DBGlobal.db.withTransaction { qoPlusLimit.list }
}
我很好奇,如果有寫此相比,這種方法更簡潔的方式。
祈禱告訴。