2012-03-19 9 views
4

私はJPAを使い始めています。エンティティとその使用法の用語とは常に混同されています。私は多くを読んだことがありますが、まだそれほど得られません。 私はOracleのマニュアルを読みましたが、実際にトランザクションでの役割については説明していません。JPAエンティティとは何ですか?

JPAエンティティとは何ですか?実際には各行のデータを保持しているのですか?つまり、行データを保持するインスタンスが格納されていますか?またはそれらはdbのテーブルをマップしてから挿入して削除するだけですか?例えば

私はこの使用している場合:

entity.setUserName("michel"); 

が続いてユーザー名を変更し、その後、それを持続し、そして(すなわち、それをマージ)、再びそれをpersisitig

これは、以前に入力したユーザー名を変更していますか?またはそれはデータベースに新しい行を作成しますか?

答えて

13

エンティティは、データベースの観点から考えているときに、コードのパースペクティブやテーブルの行から考えると(基本的に)、クラスのインスタンスとほぼ同じことです。

したがって、本質的には、永続化/永続化可能なクラスのインスタンスです。他のクラスインスタンスの値を変更するのと同様に、値を変更することができます。違いは、これらの変更を永続化できることです。一般的に、クラスインスタンス(エンティティ)の現在の状態は、データベースの一致する主キーに基づいて、そのインスタンス(エンティティ)の行がデータベースに保持していた値を上書きしますクラスインスタンス(エンティティ)内の「id」または同様のフィールド。

もちろん、この動作には例外がありますが、これは一般的に当てはまります。

0

これはモデルです。永続化できるドメインオブジェクトです。それ以上考えないでください。 Railsモデルに似ています。そして、(このパラダイムの)モデルは変更可能であることを忘れないでください!

関連する問題