Java 软删除包位置

Java 软删除包位置,java,spring,soft-delete,Java,Spring,Soft Delete,我有以下结构的现有spring项目 -com.project -chat -domain -Chat -ChatRepository -ChatRepositoryImpl -... -exception -... -email -domain -Email -EmailRepository -EmailRepositoryImpl -... -... 我认为该项目具有这种结构,因为在

我有以下结构的现有spring项目

-com.project
 -chat
   -domain
     -Chat
     -ChatRepository
     -ChatRepositoryImpl
     -...
   -exception
   -...
 -email
   -domain
     -Email
     -EmailRepository
     -EmailRepositoryImpl
     -...
 -...
我认为该项目具有这种结构,因为在完成MVP之后,它可能被划分为微服务

我想通过编辑电子邮件实体并修改其存储库,为电子邮件添加软删除功能。但其他实体将来也可能需要软删除功能,所以现在我很好奇该怎么做


是否最好在单独的包中创建一些基本实体,其中包含isDeleted和deletedAt字段以及基本SoftDeleteRepository,然后所有实体和repo将扩展它们或创建某种库,我将在每个包中使用它们,或者可能有其他方法来处理此问题?

除非你肯定它会被分成微服务

即使您现在将它们分为不同的域,您仍然需要重构if
Email
,无论出于何种原因调用
Chat
。这可能有点棘手,需要避免,而且无论如何都需要重构


现在只需使用一个
utility/common
文件夹来存放
SoftDeleteRepository
。您可能需要将其重构为两个微服务共享的单独工件,或者只是复制/粘贴它们。有时最好记住,一个微服务应该由不同的团队拥有,并且拥有不同的数据库。有时候复制paste=]是可以的。

我想说的是,除非您确定它将被划分为微服务,否则不要考虑太多

即使您现在将它们分为不同的域,您仍然需要重构if
Email
,无论出于何种原因调用
Chat
。这可能有点棘手,需要避免,而且无论如何都需要重构

现在只需使用一个
utility/common
文件夹来存放
SoftDeleteRepository
。您可能需要将其重构为两个微服务共享的单独工件,或者只是复制/粘贴它们。有时最好记住,一个微服务应该由不同的团队拥有,并且拥有不同的数据库。有时可以复制粘贴=]