私はJavaのORMからスイッチを外しています。私は、ORM以外の設定で多対1多対1の関係を処理する最良の方法は何か疑問に思っていました。ORMを使用しない場合、どのようにネストされたオブジェクトを扱うのですか?
私が持っている私のCustomer.java
クラスで
:私が持っているPet.java
で
private Long id;
private String name;
private Date dob;
//About 10 more fields
private List<Pet> pets;
:ペットのための
private String id;
private String name;
private Customer owner;
私のデータベーステーブルは、今私が気付いている場合、この
id BIGSERIAL PRIMARY KEY,
name VARCHAR(20),
owner_id BIGSERIAL REFERENCES...
のように見えます私は2つのテーブルを結合するクエリを実行し、私は "フラット"データ構造を返すwhiを得るchにはCustomer
とPet
の両方のフィールドと外部キーが含まれています。このシナリオでデータを処理するための共通の/最も効率的な方法は何ですか?
a。 customer.setName(resultSet.getString(("name"))
...を呼び出して手動でオブジェクトグラフを再構築しますか?
b。返されたデータは、そのままMap<String, Object>
に変換して使用しますか?
データは次のとおりです。データはデータベースから読み込まれ、AngularJSフロントエンドで使用するためにJSONにレンダリングされます。>変更されたデータは検証のためにサーバーに送り返されます>ドメインロジックが適用されます>データベースに保存されます。
列 'テーブルのid'' Pet'ある 'BIGSERIAL'、なぜならばフィールド 'id'は' String'ですか?それは「長い」ものでなければなりません。また、テーブル 'Pet'は' BIGSERIAL'という2つのカラムを持つべきではありません。 – Andreas
これは単なる説明のためのものです。実際のスキーマはずっと穏やかで一貫しています。 – kshep92