java为什么JPA2元模型是由易失性成员生成的?
我刚刚使用org.apache.openjpa.persistence.meta.AnnotationProcessor6
为我的JPA2实体生成了元模型
@javax.annotation.Generated
(value="org.apache.openjpa.persistence.meta.AnnotationProcessor6",
date="Tue Nov 22 09:49:03 CET 2011")
public class Entity_ {
public static volatile SingularAttribute<Entity,Entity> id;
public static volatile SingularAttribute<Entity,String> value;
public static volatile SingularAttribute<Entity,String> order;
}
有人能解释一下为什么在这种情况下属性被标记为volatile吗
谢谢
# 1 楼答案
设置静态变量的线程可能与用于访问静态变量的线程不同,因此需要
volatile
修饰符来同步所有线程之间的内存没有
volatile
的场景如下:null
null
李># 2 楼答案
尽管有meaning of ^{} keyword 和Ingo的答案,但值得注意的是,每个JPA生成器都需要生成易失性元数据字段(JPA 2.0 FR,6.2.1.1规范元模型)
在第199页,您可以阅读: