0

2つのテーブルがあります。1つはCustomerで、もう1つはProductです。ご存知のように、CustomerはProductとOneToManyの関係があり、以下に表示されます。

顧客エンティティでは、

private Set<Product> products;

ご覧のとおり、私はSetOneToManyリレーションを実装するために使用しますが、将来、Productとして1つのエンティティのみを追加する場合は、それらすべての製品をフェッチして、次のようなことを行う必要があります。

Set<Product> products = customer.getProduct();
products.add(new Product(id, name, price));
dao.update(customer);

新しいエンティティを追加するためだけにデータベースからすべての製品をフェッチするプロセスは非常に重いと思いますが、休止状態でそれを行う他の方法はありますか?

4

2 に答える 2

1

製品にCustomerプロパティが含まれるように双方向マッピングを使用する場合は、製品を個別に保存できます

private Customer Customer;

dao.Save(new Product(Customer, id, name, price));

それは明らかにあなたの集合ルートを壊しています...

于 2013-01-26T18:54:40.957 に答える
0

代わりにリストまたはバッグを使用してください。Hibernateドキュメントから:

バッグ要素を初期化(フェッチ)することなく、バッグまたはリストに要素を追加できます。

于 2013-01-26T19:16:05.557 に答える