通过5.1.7小节中的学习,我们了解到,一旦类标注了成了实体,JPA实现将属性和对应的getter方法认为是可持久化的。
如果实体中有属性或者getter方法并不需要持久化,则需要使用@Transient标注。例如将CustomerEO实体中的“property”属性设置成非持久化的,代码如下所示。
@Entity
@Table(name = "customer")
public class CustomerEO implements java.io.Serializable {
……
private String property;
@Transient
public String getProperty() {
return property;
}
public void setProperty(String property) {
this.property = property;
}
}
这样,当容器加载实体时,将认为标注了@Transient注释的属性是非持久化的,将不会对应到表中的字段。