使用 Slick

问题描述

几个月来,我一直在使用 Play Framework 和 Slick 开发 REST 项目。该项目已经发展壮大,即将变得无法维护。

现在我担心我的数据库中有一个特定的表,它包含“文档”,即关于上传到服务器的所有文件的元数据。它被项目的许多功能使用,并且是几乎所有存储库的依赖项。 我想在我的界面中添加一个删除”按钮,它会删除一个文件及其元数据。如果该文档仍被其他存储库引用(即,上面有外键),则应禁用该按钮。理想情况下,我应该了解参考文献的位置。

这个看似简单的功能破坏了项目的所有设计。我构建了一个大型 Slick 查询,它基本上由一堆 EXISTS 子查询的分离组成。然而,这个特定的查询需要依赖于项目的几乎所有存储库,并创建一个巨大的循环依赖,这在 Play 项目中似乎是一个坏主意。我在引用同一个表时遇到问题,但从同一依赖项的不同副本注入,但无法编译。另外,我认为这种方法相当……超重。

我创建了一个“主存储库”,它依赖于我可以在其中放置“isDeletable”方法的所有类。

此外,我现在需要知道每次加载文件时是否可以删除它。这意味着当我加载一个文档时,我需要一个对我的主存储库的依赖,这会再次创建循环依赖,除非我将我所有的文档加载方法都移动到主存储库中,这会破坏项目的封装。

现在我有点迷茫了:(有人对这个问题有什么想法吗?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)