Loa*_*ado 1 scala playframework slick
如果我尝试在Slick中更新一个不存在的行,我想返回一个错误.
我的查询:
userPromotions.filter(promo =>
promo.code === code).update(myUpdatedRow)
Run Code Online (Sandbox Code Playgroud)
我试图做的查询(我有一个错误原因"rowToUpdate.exist"是Rep [Boolean]而不是布尔值):
val rowToUpdate = userPromotions.filter(promo => promo.code === code)
if(rowToUpdate.exist) rowToUpdate.update(myUpdatedRow)
else NotFound
Run Code Online (Sandbox Code Playgroud)
有没有办法在单个查询中执行此操作?
如果您使用Slick 3.0及更高版本
DBIO.failed当更新的行数为0时,使用您可能会使事务失败
userPromotions.filter(_.code === code).update(myUpdatedRow).flatMap { updatedRows =>
if (updatedRows == 0) DBIO.failed(new Exception("0 rows updated"))
else DBIO.successful(updatedRows)
}.transactionally
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
628 次 |
| 最近记录: |