私は様々なサイズのテーブルを使用するアプリケーションを作成していますが、DDDというラベルのプロジェクトでは永続性の部分を正しく取得できないため、私は物事を研究していました。私が完全に把握していない一つのことは、具体的な例を見つけることができないように見えます。私はORMを使わずに作業しています。(これは実際にはdb固有のプロジェクトであるため、ORMを使用することはできません。私は簡単にはできないでしょう)。私はstackoverflowの具体的な例を見回しましたが、実際には私の特定の問題を説明するものはありません。DDD(java)集約ルーツと永続性
私はあなたが私は明らかに任意の列を破棄し、テーブルのエンティティを取得するたびに、すでにに追加した場合、またはコレクションから削除列コレクションを設定見ての通り、以下のコードは
public DataTable getTableByID(int id) throws AccessException{
DataTable result = this.context.TableContext().getEntityByID(id);
result.setColumns(getColumnsByTableID(id));
return result;
}
private List<DataColumn> getColumnsByTableID(int id){
Object[] arguments = { id };
return this.context.ColumnContext().getUnitsWhere("TABLE_ID = ?", arguments);
}
権利であることを疑いますテーブルはすでに記憶されていました。私はどこでどのように私は列を取得する必要があります(私はテーブルクラス内のリポジトリを呼び出すと考えてきたが、それについては何か感じていない)。永続性については、オブジェクトのリストをオブジェクトに追加するときに、オブジェクトを簡単に取得することもできますが、オブジェクトを削除すると検出方法がないこれをキャッチするためのイベントを入れることは、不正行為になります:))。正しい方向に少し押していただければ幸いです。ありがとうございます。
あなたが言っていることはたくさんの意味があります。私はORM全体を構築するのはちょっと大したプロジェクトではないと考えていますが、それは完全にdddではないことを知っていますが、代わりに1-1のマッピングを行い、リポジトリ(明らかにリポジトリではない)をデータベースに直接マップするだけです。(基本的にちょうど栄光のDAO) – nevermore
私はこのアプローチはうまくいくと思うが、それは 'ドメイン駆動型'と呼ぶのは難しいだろう、それは_data_駆動されるだろう。 – Dmitry
真実、私はそれをdddと呼んでいないだろうが、もし私が自分のオルームを転がすのを止めたら、私はそれを解決するだろう。私は正直なところ、dbアクセスについて適切な方法を探していました。アクティブなレコードについて読んだことから、私たちの目的にはあまりにも制限があるようでした。私が言ったように、以前は半dddプロジェクトに取り組んできましたが、あなたのドメインをあなたの問題にモデル化する方法が好きですが、このプロジェクトではあまりにもわずかな利益のためにあまりにも多くの仕事があるようです。すべての助けをありがとう、私は本当にそれを感謝します。 – nevermore