1

问题很简单(答案可能不是):使用实体 A 的自定义存储库作为该实体的 DAO 是一种好习惯吗?

存储库包含与该实体相关的特定查询,但添加持久化方法是个好主意吗?

我来自 Spring 世界,我正在尝试以类似的方式组织我的代码(controller->service->dao->entity),但我不知道这是否是 Symfony2 世界中的正确方式。

谢谢。

4

1 回答 1

1

我不是 100% 确定你为什么需要一个 DAO。由于实体管理器扮演数据访问对象的角色。我不确定您要向存储库添加哪种功能。如果您只想要一些持久性功能,只需使用实体管理器。如果你想在你的持久化函数中有更多的逻辑,你可以引入管理器类。

以下是我通常的工作方式:

我的存储库类中只有查询。我引入了另一个服务层,我称之为管理器类。在这些中,我有更改实体和持久化它们的整体方法。

示例: 我有一个用户 - 用户组的情况。我正在使用 FOSUserBundle 中的 UserManager,但也引入了 UserGroupManager。此 UserGroupManager 具有允许我将用户添加到组(加入)或删除它们、向组发送邀请等以及在我执行这些操作时触发一些事件的功能。我还有一个 UserGroupRepository 用于查找属于特定人员的组或将我通常需要的所有必要数据加入我的组中。

于 2013-09-19T09:03:48.910 回答