我有一个查询,我有条件地增强依赖计数和偏移参数的存在或缺失。有条件地增强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 }
}
我很好奇,如果有写此相比,这种方法更简洁的方式。
祈祷告诉。