【发布时间】:2015-10-08 15:50:54
【问题描述】:
我有一个模型、相应的表和一个存储库。在我的存储库中,使用 TableQuery 我想根据一些标准(从模型到布尔值的函数)查找模型对象,存储库无法控制它,它作为参数注入。例如
case class JournalEntryModel(id: Option[Long] = None, isDebit: Boolean, principal: Double)
class JournalEntryTable(tag: Tag) extends Table[JournalEntryModel](tag, "journal_entries") {
def id = column[Long]("id", O.PrimaryKey, O.AutoInc)
def isDebit = column[Boolean]("is_debit")
def principal = column[Double]("principal")
def * = (id.?, isDebit, principal) <>
(JournalEntryModel.tupled, JournalEntryModel.unapply)
}
object journalEntries extends TableQuery(new JournalEntryTable(_))
object Repository {
def find(criteria: JournalEntryModel => Boolean): List[JournalEntryModel] = db.run {
journalEntries.filter(je => criteria(je)).result
} toList
}
val credits = Repository.find(!_.isDebit && _.principal > 500.0)
这样的过滤函数怎么写?
【问题讨论】:
-
您需要提供更多信息,说明您的问题中的解决方案为何不起作用。它没有编译还是根本没有返回正确的结果?
标签: scala design-patterns repository-pattern slick slick-3.0