0

前もって感謝します。Java オブジェクトのフィールドに get メソッドと set メソッドを使用して「アクセス メソッド」を使用しようとしています。私の質問は、データベースへの保存中に EclipseLink が getter メソッドを複数回呼び出していることに気付きました。db に 1 回だけ格納されます。また、「WRITING TO」データベース中にセッターメソッドを呼び出します。オブジェクトを構築するためにデータベースから「読み取る」ときにのみ呼び出されると思います。

ここに私が持っているサンプルコードがあります

<entity-mappings ><basic name="column1" />
<basic name="longstring" >
            <column name="col2" nullable="true"   />
            <access-methods get-method="getLongString" set-method="setLongString" />
        </basic>

public class TestObj {
    String column1; 
    String col2;
public String getLongString() {  return "some long string";  }
public void setLongString(String col2) {  this.col2 = col2;  } 
}

EclipseLinkが内部で正確に何をしているのか、dbへの書き込み中に「set」メソッドを呼び出そうとする理由はありますか? また、複数回?

ありがとう

ゴピ

4

1 に答える 1

0

TopLinkは、アクセス・メソッドを使用して、変更を追跡し、共有キャッシュを維持するために必要なエンティティおよびコーン内の値を取得および設定する必要があります。メソッドが呼び出されたときのスタック トレースは、そのメソッドが使用されている理由を示します。

于 2013-10-17T02:21:14.010 に答える