在Slick事务中的DBIO.from内部进行服务调用是个好主意吗?

时间:2017-05-10 10:46:39

标签: database scala transactions slick

我们的项目使用Slick并分成模块,其中每个模块都有一个服务层(业务逻辑,可能依赖于不同模块中的其他服务),这些模块可能封装了几个返回DBIO个动作的DAO层。 / p>

我们在服务层上编写来自不同DBIO的{​​{1}}个动作,以在事务中运行业务逻辑。

问题很简单,当服务DAO依赖于服务A并且需要从服务B调用某个函数时,我们是否应将该调用置于BB或首先对DBIO.from进行服务调用,然后根据结果执行数据库事务。

B内调用服务B的好处是,如果调用失败了我们的事务回滚,但当然如果成功然后失败了我们基本上都在同一个没有从DBIO.from拨打电话的情况。

缺点是,只要我意识到数据库事务应该简短快速,并且在数据库事务中调用外部服务听起来像个坏主意("代码味道")

您的意见是什么?

0 个答案:

没有答案