例如,我有一组查询:
for {
entity <- sql"<select some optional entity from db>".query[Entity].option
result <- sql"<insert some data using entity>".update.run
} yield result
当找不到实体并引发错误“实体不存在”时,如何不插入一些数据?
就像是:
for {
entity <- sql"<select some optional entity from db>".query[Entity].option
result <- entity // Option[Entity]
.fold(ConnectionIO.raiseError("entity does not exists")) // ConnectionIO.raiseError does not compile
(e => sql"<insert some data using entity>".update.run)
} yield result