为什么JPA 2.0生成的元模型会使字段VOLATILE?

时间:2012-05-31 13:52:48

标签: java-ee jpa-2.0 volatile metamodel

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

public static volatile SingularAttribute<Presentation, String> topic;

1 个答案:

答案 0 :(得分:1)

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

  1. 连同声明或
  2. 静态初始化程序中的
  3. 这是不可能的,因为创建元模型类的人不知道应分配的值。创建EntityManagerFactory时,值由提供程序分配。

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