Я хотел бы запустить два эффекта f1 и f2, обновляя две разные таблицы базы данных t1 и t2, оставаясь в общем контексте F.
def update(model:Details): Update0 = sql"""Update details_compta
set TRANSID=${model.transid}, ACCOUNT=${model.account}, SIDE=${model.side}, OACCOUNT=${model.oaccount},
AMOUNT=${model.amount}, DUEDATE=${model.duedate}, TEXT=${model.text}, CURRENCY=${model.currency}, COMPANY=${model.company}
where id =${model.id}""".update
}
def update(model: FinancialsTransaction): Update0 = sql"""Update master_compta
set OID=${model.oid}, COSTCENTER=${model.costcenter}, ACCOUNT=${model.account}, TRANSDATE=${model.transdate}
, HEADERTEXT=${model.text}, FILE_CONTENT=${model.file_content}, TYPE_JOURNAL=${model.typeJournal}
, PERIOD=${model.period}
where id =${model.tid} AND POSTED=false""".update
}
Я пробовал следующее, которое не удалось скомпилировать:
def update(model: FinancialsTransaction): F[Int] = {
val l1 = model.lines.map(SQL.FinancialsTransactionDetailsRepo.update(_)) :+ SQL.FinancialsTransactionRepo.update(
model
)
l1.sequence.run.transact(transactor)
} Я получил следующую ошибку:
doobie/DoobieRepository.scala:892:8: Cannot prove that doobie.util.update.Update0 <:< G[A].[error] l1.sequence.run.transact(transactor)
PS: Я хотел бы запустить оба эффекта в одной транзакции и в общем контексте F. Я знаю решение при использовании Connection [IO []] для F. Но мне нужно решение, оставаясь в общем контексте F, если это возможно. Спасибо