scala - 在 Slick 和 Scala 中使用带参数的过滤函数进行柯里化?
问题描述
如何定义 currying 参数 (???) 可以更改以下函数中的过滤器:
def readManRleIspBy(value:String)(???) = {
val query= tblManRleIsp.filter(??? === value)
db.run(query.result)
}
我需要在另一边定义(???)。例如
readManRleIspBy("test")(f=>f.rlePattern)
或
readManRleIspBy("test")(f=>f.rleName)
解决方案
Rep
为此,您必须使用 slick 。下面的代码TableRow
是您使用 slick 在数据库中持久化的类的名称。
例如,如果我坚持雇员,那么我写雇员表,我的TableRow
变成Employee
def readManRleIspBy[A](value: A)(f: Rep[TableRow] => Rep[A]) = {
val query= tblManRleIsp.filter(row => f(row) === value)
db.run(query.result)
}
现在你可以写
readManRleIspBy("test")(f => f.rlePattern)
并且
readManRleIspBy("test")(f => f.rleName)
免费建议:请尝试使用更好的名称
推荐阅读
- sharepoint - 从 SharePoint 库创建缩略图
- python - 如何在lamba和map中使用for循环?
- javascript - React Joyride:步骤跳过,工具提示不显示,重置不起作用
- r - AUC 和 cvAUC 的 mlr3 置信区间
- excel - VB代码以复制数据透视过滤数据ID并将其粘贴到匹配的工作表名称中
- python - 如何根据同一数据框中另一列的值替换数据框中列中的 NaN 值
- c# - 错误代码:XamlC 错误 XFC0000:无法解析类型“MediaElement”
- c# - 在不使用 JavaScript 一段时间后,如何在 Microsoft Blazor 中隐藏鼠标光标?
- swift - 在 ipad 键盘中显示,同时从 swift 中的日期选择器编辑时间
- typescript - 我应该如何在 Typescript 中解释这种代码类型检查