1

タイプセーフクエリの新機能は、クラスのメタモデルを生成しますが、なぜこれらのフィールドは揮発性ではなく最終的ではないのですか?

public static volatile SingularAttribute<Presentation, String> topic;
4

1 に答える 1

1

static final フィールドを割り当てる必要があるため、メタモデル クラスのフィールドを final にすることはできません。

  1. 宣言と一緒に、または
  2. 静的初期化子で。

割り当てられるべき値がメタモデル クラスを作成する側に知られていないため、これを行うことはできません。値は、EntityManagerFactory の作成時にプロバイダーによって割り当てられます。

結果として、プロバイダーによって割り当てられた値を他のスレッドが参照できることを保証するために、属性は揮発性である必要があります。

于 2012-05-31T15:52:08.700 に答える