1

类型安全查询的新特性会为类生成一个元模型,但为什么这些字段不是 final 而不是 volatile ?

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

1 回答 1

1

元模型类中的字段不能是最终的,因为应该分配静态最终字段:

  1. 连同声明或
  2. 在静态初始化器中。

这是无法做到的,因为创建元模型类的人不知道应该分配的值。值由提供者在创建 EntityManagerFactory 时分配。

结果是属性必须是可变的,以保证其他线程可以看到提供者分配的值。

于 2012-05-31T15:52:08.700 回答