我正在阅读 JPA 2.0。我遇到一个句子
We have used the transient modifier instead of the @Transient annotation so that
if the Employee gets serialized from one VM to another then the translated name
will get reinitialized to correspond to the locale of the new VM.
@Entity
public class Employee {
@Id private int id;
private String name;
private long salary;
transient private String translatedName;
// ...
public String toString() {
if (translatedName == null) {
translatedName = ResourceBundle.getBundle("EmpResources").getString("Employee");
}
return translatedName + ": " + id + " " + name;
}
}
我的理解是,当我们使用 @Entity 注释并且容器遇到它时,它会调用 JPA 提供者来做这些事情。就像将 id 映射到数据库中的 ID 列一样。虽然我们没有提到姓名和薪水上的@Column 注解,但默认情况下它映射到数据库中的 NAME 和 SALARY 列。我们在translatedName 上使用了transient,因此JAP 保持原样,而不是对其应用映射。它只是这个类中的一个字段。但我无法理解这句话
if the Employee gets serialized from one VM to another
有人请给我解释一下吗?还告诉我上面关于 JAP 工作流程的定义是正确的吗?就像容器遇到@Entity 注解时会发生什么?
谢谢