【发布时间】:2019-02-27 14:38:29
【问题描述】:
我最近在这里探索了一篇关于休眠最佳实践的文章 https://thoughts-on-java.org/hibernate-best-practices/
我遇到了一个话题
在使用 Criteria API 时使用 JPA 元模型
@Generated(value = “org.hibernate.jpamodelgen.JPAMetaModelEntityProcessor”)
@StaticMetamodel(Author.class)
public abstract class Author_ {
public static volatile SingularAttribute<Author, String> firstName;
public static volatile SingularAttribute<Author, String> lastName;
public static volatile SetAttribute<Author, Book> books;
public static volatile SingularAttribute<Author, Long> id;
public static volatile SingularAttribute<Author, Integer> version;
}
我仍然无法理解volatile 的作用是什么,因为我们知道 volatile 变量的值永远不会被缓存,所有写入和读取都将在主内存中完成。
请任何人澄清一下,我们究竟想通过使用volatile 关键字来实现什么?你不觉得上面的代码会导致性能问题吗?
【问题讨论】:
标签: java hibernate jpa criteria-api