2011-11-04 69 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方法总是被忽略。

虽然(根据文档),但它可以定制,所以确保有人没有做一些奇怪的访问类型。