【问题标题】:Slick mapper fails, but didnt' see any exception光滑的映射器失败,但没有看到任何异常
【发布时间】:2017-04-07 20:18:17
【问题描述】:

在 slick 中,我有一个映射枚举的列映射器。

数据库有一个不在我的枚举中的整数值(int 值 2),我在日志中没有看到任何异常。

为什么没有抛出错误?我有一个从未在我的代码中完成的 for-compr。

object MemberStatus extends Enumeration {
  type MemberStatus = Value
  val Pending, Active = Value  // it was missing a new value HERE!!!
}

在我光滑的桌子上我有这​​个:

implicit lazy val memberStatus = MappedColumnType.base[MemberStatus, Int](
      ms => md.id,
      i => MemberStatus(i)
    )

我已经尝试调试了一段时间,我刚刚意识到我的数据库行的 member_status 值为 2。

当我将我的枚举更新为:

object MemberStatus extends Enumeration {
  type MemberStatus = Value
  val Pending, Active, Deleted = Value
}

效果很好。

我也将此添加到我的 logback.xml 中:

<logger name="slick.jdbc" level="DEBUG"/>

为什么没有抛出异常?或者如果有,为什么我没看到?

【问题讨论】:

    标签: scala playframework slick


    【解决方案1】:

    不就是简单地使用recover / recoverWith 就像这里:https://stackoverflow.com/a/34588733/2239369 或这里:https://stackoverflow.com/a/42254112/2239369 或这里:https://stackoverflow.com/a/41875646/2239369 吗?

    【讨论】:

    • 所以在你的代码中,你的所有数据库调用中都有 recover/recoverWith 吗?我没有看到这样的例子,但它似乎应该是一个最佳实践,那么正确吗?
    猜你喜欢
    • 1970-01-01
    • 2021-01-13
    • 1970-01-01
    • 2013-08-17
    • 1970-01-01
    • 2012-09-15
    • 1970-01-01
    • 2019-12-26
    • 1970-01-01
    相关资源
    最近更新 更多