我讀JPA 2.0序列化時,從一個虛擬機到另一個意思。我遇到一個句子什麼是使用JPA
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列。我們在compiledName上使用了transient,所以JAP保持原樣,而不是映射應用於它。這只是這個班的一個領域。但我無法理解這句話
if the Employee gets serialized from one VM to another
有人請給我解釋一下嗎?還請告訴我,上面關於JAP工作流程的定義是正確的?就像容器遇到@Entity註釋時發生的情況一樣?
由於
Hhhhmm謝謝。你的意思是,如果我使用'@ Transient' annotaion,那麼這個字段的數據將不會保存在數據庫中,但是如果我的Employee calss實現Serializable接口,它將會被序列化。但是對於transient關鍵字,即使我的Employee類實現Serializable,既不保存到數據庫也不能成爲serializabe?我對嗎? – Basit
你說得對。 –
謝謝:)當我們說堅持實體時,還有一件事,它意味着將記錄保存在數據庫中。如果記錄不保存在數據庫中,那麼我們不能說它會持續存在? – Basit