Spring Hibernate中的@Transient方法调用
问题内容:
我有一个Pojo类,在其中创建一个未与数据库表映射的字段。所以我必须声明字段Declaration以及setter和getter方法@Transient,否则它将显示错误。
@Transient
private String docHistoryString="";
@Transient
public String getDocHistoryString() {
return docHistoryString;
}
@Transient
public void setDocHistoryString(String docHistoryString) {
this.docHistoryString = docHistoryString;
}
现在,我的问题出在控制器上。我已经在此瞬态字段中设置了一些值,但是当我尝试在view(JSP)中使用EL访问此变量时,它没有给出值。我认为这是因为我在get方法中使用了@transient批注。
问题答案:
所有Hibernate注释(包括注释)@Transient
必须根据访问类型进行应用。默认情况下,它将与@Id
应用相同。也就是说,如果您放置@Id
在字段上,则必须将其应用于@Transient
该字段。而且,如果您申请@Id
吸气剂方法,则必须申请@Transient
方法。设置方法总是被忽略。
不过,它可以自定义(根据文档),因此请确保没有人对访问类型做过奇怪的事情。