我刚刚遇到一个非常可怕的情况。我的表定义引用了一个错误的列,我注意到尚未插入的插入没有关于该问题的错误/异常。它只是默默地"失败。
这是正常的光滑行为吗?
所以我的表定义如下:
def expiredAt = column[Timestamp]["created_at"]
def createdAt = column[Timestamp]["created_at"]
如您所见,两者引用的列是相同的列" created_at"。当我将expiredAt列更改为" expired_at"一切正常。
但对我来说真正的问题是没有任何例外。
这是正常的光滑行为吗?幕后发生了什么?对于updatedRows,它不会返回0吗?
我的保存方法如下:
(users returning users.map(_.id)) += user
我正在使用slick3。
答案 0 :(得分:3)
遇到同样的问题,用recover:
解决了val query = (users returning earningsForms.map(_.id) += user
db.run(query).recover{ ex: Throwable => Logger.error("Error occured when inserting user", ex)}
答案 1 :(得分:1)
不知道Slick,但我见过bonecp(默认播放< 2.4)在某些条件下吞下异常。
我有同样的问题,浪费了几个小时试图找到问题。当我切换到HikariCP时停止发生。如果可以,请升级到2.4(默认情况下使用hikaricp)。如果你坚持使用2.3,你将不得不使用hikaricp play插件。