【发布时间】:2021-03-01 10:06:48
【问题描述】:
我正在尝试使用Slick 框架与MySQL 集成。但是,每当我使用 LIKE 运算符时,它都会失败并出现错误,如下所示。
代码
.filterIf(etilizeRequest.q.nonEmpty) {
case ((((((prod, manRep), catRep), cnRep), pdRep), prodSkusRep), saRep) =>
cnRep.map(_.name).like("%"+etilizeRequest.q.get+"%").get
}
错误
slick.SlickException:在计算默认值时捕获异常 for Rep[Option[_]].getOrElse -- 当 数据库端需要值 slick.compiler.HoistClientOps$$anonfun$rewriteDBSide$1.applyOrElse(HoistClientOps.scala:159) 在 slick.compiler.HoistClientOps$$anonfun$rewriteDBSide$1.applyOrElse(HoistClientOps.scala:152) 在 slick.ast.NodeOps$.r$1(Util.scala:47) 在 slick.ast.NodeOps$.$anonfun$replace$2(Util.scala:48) 在 slick.ast.BinaryNode.mapChildren(Node.scala:204) 在 slick.ast.BinaryNode.mapChildren$(Node.scala:200) 在 slick.ast.Filter.mapChildren(Node.scala:310) 在 slick.ast.NodeOps$.g$1(Util.scala:48) 在 slick.ast.NodeOps$.r$1(Util.scala:47) 在 slick.ast.NodeOps$.$anonfun$replace$2(Util.scala:48) 原因: slick.SlickException:读取列的 NULL 值 slick.lifted.OptionColumnExtensionMethods@594b5a63 在 slick.lifted.OptionColumnExtensionMethods$.$anonfun$get$1(ExtensionMethods.scala:39) 在 slick.compiler.HoistClientOps$$anonfun$rewriteDBSide$1.applyOrElse(HoistClientOps.scala:156) 在 slick.compiler.HoistClientOps$$anonfun$rewriteDBSide$1.applyOrElse(HoistClientOps.scala:152) 在 slick.ast.NodeOps$.r$1(Util.scala:47) 在 slick.ast.NodeOps$.$anonfun$replace$2(Util.scala:48) 在 slick.ast.BinaryNode.mapChildren(Node.scala:204) 在 slick.ast.BinaryNode.mapChildren$(Node.scala:200) 在 slick.ast.Filter.mapChildren(Node.scala:310) 在 slick.ast.NodeOps$.g$1(Util.scala:48) 在 slick.ast.NodeOps$.r$1(Util.scala:47)
有人能建议这个错误背后的原因吗?我该如何解决?
【问题讨论】: