Если action1
не был запущен во время создания action2
, то transformedBookReaders
будет пустым и ничего не произойдет.Если бы вы могли изменить action
, чтобы получить коллекцию BookReader
вместо зависимости от побочных эффектов, тогда можно было бы построить action2
def savebook(book: Book, bookReaders: Seq[BookReaders]) = {
val action1 = bookDAO.insertRow(book).map { id =>
bookReaders.map { bookReader=> new BookAssociation(None, id, bookReader.moduleId, bookReader.userId, bookReader.roleId)
}
val action2 = readers => bookAssocDao.insertRows( readers )
db.run(action1.andThen(action2).transactionally)
}
. Возможно, я неправильно понял, что insertRow()
и insertRows()
делаем.