0

たとえば、「商品」テーブルがあり、「categoryId」列があり、これは ID と名前を持つ別の「カテゴリ」テーブルです。

goodsエンティティを作成するときはnamecategoryIdまずカテゴリ エンティティをクエリしてから、エンティティで「setCategory」関数を呼び出しgoods、最後にデータベースに保存する必要があります。

エンティティを作成するたびに、goods最初に ID でカテゴリ エンティティをクエリする必要があります。それを行う簡単でパフォーマンスの高い方法はあるのでしょうか?

4

3 に答える 3

0

カテゴリエンティティはキャッシュされるため、各「商品」エンティティが異なるカテゴリを参照していない限り、おそらく許容できるパフォーマンスが得られます。

本当に心配な場合は、EntityManager.getReferenceを使用して、カテゴリエンティティの軽量バージョンを取得できます。

于 2012-12-18T11:34:20.370 に答える
0

カテゴリがマスター データであると仮定すると、カテゴリをメモリにキャッシュすることができます。キャッシュからのカテゴリ オブジェクトの取得は、高パフォーマンスになります。Second Level CacheQuery CacheHibernateなどの優れたキャッシングサポートがあります。同じものを活用することをお勧めします。

ehcacheは、キャッシュに使用する別のオプションです。

于 2012-12-17T05:45:32.687 に答える