20.5.2. 更新にもっとも効率的なコレクション list、map、idbag、set


上での議論から、インデックス付きコレクションと set は要素の追加、削除、更新でもっとも効率的な操作が出来ることは明らかでしょう。
ほぼ間違いなく、多対多関連や値のコレクションにおいて、インデックス付きコレクションが set よりも優れている点がもう一つあります。Set はその構造が原因で、Hibernate は要素が「変更」されたときに行を決して UPDATE しません。Set への変更は常に各行のINSERTDELETE によって行います。繰り返しますが、これは一対多関連には当てはまりません。
配列は遅延処理ができないという決まりなので、結論として、list、map、idbag がもっともパフォーマンスの良い(inverse ではない)コレクションタイプとなります。set もそれほど違いはありません。Hibernate のアプリケーションでは、set はコレクションのもっとも一般的な種類として考えることができます。これは、「set」の表現が関連モデルでもっとも自然だからです。
しかし、よく設計された Hibernate のドメインモデルでは、通常もっとも多いコレクションは事実上 inverse="true" を指定した一対多関連です。これらの関連では、更新は多対一の関連端で扱われ、コレクションの更新パフォーマンスの問題は単純に当てはまりません。
トップに戻る
Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。 最新の更新を見る.

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

Theme

© 2025 Red Hat