私は、ArrayListsを使用して、データとそれらの間の1対多/多対多の関係を表すいくつかのPOJOクラスを使用して、J2SEデスクトップアプリケーションに取り組んでいます。コレクションを使用してデータを管理し、Java の PropertyChangeListener を使用してモデル イベントを発生させ、モデルを分離した状態に保つだけです (Python のバックグラウンドから来て、DAO パターンで必要な繰り返しとボイラープレートの量は、作成して維持するのが正気ではないようです) )。
そのため、このアプリケーションでファイルを保存するために、最初はシリアル化を使用しました。ソフトウェアのドメイン オブジェクトの更新により、以前に保存されたファイルとの下位互換性が失われたため、これはもちろんひどい決定でした。
その後、JAX-B に移行することにしましたが、この架空の出力を見てください。
<Person>
<Todo>
<title>Task 1</title>
</Todo>
</Person>
<Category>
<title>Category 1</title>
<Todo>
<title>Task 1</title>
</Todo>
</Category>
Todo
Person の が Category の Todo と同じであることを確認する手段がありません。フィールドを追加id
して、モデルの静的変数として最大 ID を追跡できると思いますが、それは多くの定型文のようで、ID で検索してコレクションにデータを入力する作業のようです。
この種の問題に対する標準的なアプローチはありますか。また、Java コミュニティーで最も広く使われているソリューションは何ですか。