【发布时间】:2016-04-07 09:27:15
【问题描述】:
我刚刚遇到了一个非常可怕的情况。我的表定义引用了一个错误的列,我注意到插入没有插入但没有关于该问题的错误/异常。它只是“默默地”失败了。
这是正常的狡猾行为吗?
所以我的表定义是这样的:
def expiredAt = column[Timestamp]["created_at"]
def createdAt = column[Timestamp]["created_at"]
如您所见,两者引用的列是同一列“created_at”。当我将 expiredAt 列更改为“expired_at”时,一切正常。
但对我来说真正的问题是根本没有抛出异常。
这是正常的狡猾行为吗?幕后发生了什么? updateRows 不返回 0 吗?
我的保存方法如下:
(users returning users.map(_.id)) += user
我正在使用 slick3。
【问题讨论】:
-
不知道 Slick,但我见过 bonecp(默认为 play
-
@AlvaroCarrasco 我目前正在使用 bonecp,播放 2.3.10。
-
是的,有同样的问题,浪费了几个小时试图找到问题。当我切换到 HikariCP 时停止发生。如果可以的话,升级到 2.4(默认使用 hikaricp)。如果您卡在 2.3 上,则必须使用 hikaricp 播放插件。
-
@AlvaroCarrasco 欣赏它,为什么不把它放在答案而不是评论中?
-
您是否正在检查
db.run返回的Future的结果?除非您在某些时候取消引用Future(通过map或Await或其他方式),否则异常将静默在其中。