0

私は自分のドメインオブジェクトにリポジトリ(MongoRepository)を注入しようとしていますが、私はこの​​の指示に従っていますが、それを正しく得ることはできないようです。誰もこれを前にしたことがありますか? 私はSpring Data Mongoを使用しています。ドメインオブジェクトにMongoRepositoryを注入する

+0

ドメインオブジェクトにリポジトリを挿入しないでください。代わりに、ドメインオブジェクトをリポジトリに送信します。 – MikeSW

+0

私は理解していない、マイク。それはあなたの解決策ですか?ドメインドリブンデザインパターンを適用しようとしています。私はSpringデータリポジトリ(JPAまたはMongo)を使用しようとしています。 – Reza

+0

DDDはパターンではなく、考え方です。とにかく、ドメインオブジェクトはリポジトリの知識を持ってはいけません。アプリケーションはリポジトリを使用してドメインオブジェクトを保存/ロードします。解決策が必要だが間違った問題がある。 – MikeSW

答えて

0

これは不要なオーバーヘッド(AOPを使用)だと思います。あなたは普通のJavaでそれを解決することができます。あなたのリポジトリクラスを使って、オブジェクトを作成し、それらの内部に自動注入を実行することができます。引数としてリポジトリを受け取るコンストラクタで "MyBusinessClass" をConsiderating

public class MyBusinessRepository { 

public MyBusinessClass create() { 
    return new MyBusinessClass(this); 
} 

... 

} 

:サンプルについて

とにかく、もしあなたが本当にとしたいと思ったら私たちにエラーのメッセージを見せてください。

+0

あなたはDDDのアプローチのもとでこれを行うことは決してありません。上記のコメントで述べたように、ドメインオブジェクトは決してリポジトリへの参照や依存関係を持ちません。さらに、リポジトリは新しいインスタンスの作成には使用されず、工場にはその責任があります。そして、上記のように参照をハードコーディングするのではなく、依存関係を管理するために、ある種のInversion of Control(IoC)ツールを使用することをお勧めします。 – SonOfPirate

関連する問題