1

質問は簡単です (そうではないかもしれません): エンティティ A のカスタム リポジトリをそのエンティティの DAO として使用することは良い方法ですか?

リポジトリはそのエンティティに関連する特定のクエリを保持しますが、それを永続化するためのメソッドを追加することをお勧めしますか?

私は Spring の世界から来て、同様の方法 (コントローラー -> サービス -> dao -> エンティティ) でコードを整理しようとしていますが、Symfony2 の世界でそれが正しい方法であるかどうかはわかりません。

ありがとう。

4

1 に答える 1

1

なぜDAOが必要なのか、私には100%確信が持てません。Entity Manager はデータ アクセス オブジェクトとしての役割を果たします。リポジトリに追加する機能の種類がわかりません。永続的な機能だけが必要な場合は、entitymanager を使用してください。永続関数内にさらにロジックが必要な場合は、マネージャー クラスを導入できます。

これが私が通常どのように働くかです:

リポジトリ クラスにはクエリしかありません。そして、マネージャー クラスと呼ぶ別のサービス レイヤーを導入しました。それらの中に、エンティティを変更するだけでなく、エンティティを永続化するための全体的なメソッドがあります。

例: User - UserGroup の状況があります。FOSUserBundle の UserManager を使用していますが、UserGroupManager も導入しています。この UserGroupManager には、ユーザーをグループに追加 (参加) したり、削除したり、グループに招待を送信したり、これらのアクションを実行したときにいくつかのイベントをトリガーしたりできる機能があります。また、UserGroupRepository を使用して、特定の人物に属するグループを検索したり、通常必要なすべてのデータを自分のグループに結合したりします。

于 2013-09-19T09:03:48.910 に答える