10.5. 永続オブジェクトの修正


処理中の永続インスタンス(例:Session によって、ロード、保存、作成、クエリされたオブジェクト)は、アプリケーションが操作します。その際に変更された永続状態は、Sessionフラッシュ されるときに、永続化されます。これは、この章で後述しています。変更を永続化するために、特殊なメソッド(update() のようなもの。これは、別の目的で使用します)を呼ぶ必要はありません。オブジェクトの状態を更新する一番簡単な方法は、オブジェクトを load() し、Session をオープンにしている間に、直接操作することです。
DomesticCat cat = (DomesticCat) sess.load( Cat.class, new Long(69) );
cat.setName("PK");
sess.flush();  // changes to cat are automatically detected and persisted
オブジェクトをロードするには SQL の SELECTが、更新された状態を永続化するには SQL の UPDATE が同じセッションで必要となるので、このプログラミングモデルは効率が悪くなります。Hibernate では分離インスタンスを利用することで別の方法を用意しています。

重要

Hibernate は、UPDATE 文や DELETE 文を直接実行する API を用意していません。Hibernate は、状態管理 サービスであり、それを使うのに 命令文 のことを開発者が考える必要はありません。JDBC は SQL 文を実行する完璧な API であり、session.connection() を呼ぶことでいつでも、 JDBC Connection を開発者は取得できます。さらに、大量のデータ操作の考え方は、オンライントランザクション処理向きアプリケーションのオブジェクト/リレーショナルマッピングと衝突します。しかし、Hibernate の今後のバージョンでは、大量データを処理する特別な機能を提供することができます。バッチ操作に利用できるいくつかの工夫については、13章バッチ処理 を参照してください。
Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

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

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

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

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

会社概要

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

Theme

© 2026 Red Hat
トップに戻る