2011-11-04 104 views
3

我有一個Pojo類,其中創建了一個未與DataBase表映射的字段。 所以我必須聲明字段聲明和setter和getter方法@Transient,否則它會顯示一個錯誤。@Spring Spring方法調用Hibernate

@Transient 
private String docHistoryString=""; 

@Transient 
public String getDocHistoryString() { 
    return docHistoryString; 
} 

@Transient 
public void setDocHistoryString(String docHistoryString) { 
    this.docHistoryString = docHistoryString; 
} 

現在,我的問題是在控制器。我在這個瞬態字段中設置了一些值,但是當我嘗試在視圖(JSP)中使用EL來訪問這個變量時,它沒有提供價值。我認爲這是因爲我在get方法中使用@transient註釋。

+0

您可以發佈設置docHistoryString的代碼,然後將其返回給視圖嗎? – Chris

+2

@Transient僅由Hibernate使用。它對Spring,Java一般和JSTL沒有任何特殊的含義。錯誤在別處。 –

回答

6

所有Hibernate註釋,包括@Transient必須根據access type應用。默認情況下,將採用與@Id相同的方式。也就是說,如果您將@Id放置在一個字段上,則必須將@Transient應用於該字段。如果您將@Id應用於getter方法,則必須應用@Transient方法。 Setter方法總是被忽略。

雖然(根據文檔),但它可以定製,所以確保有人沒有做一些奇怪的訪問類型。