问题:
是否可以让 JPA 保留一个字段但被序列化跳过?
有可能达到相反的效果(JPA 跳过一个字段而序列化没有),如果使用此功能,那么反过来肯定会很有用。
像这样的东西:
@Entity
class MyClass {
// Other fields.
@NonTransient
private transient String strangeField;
}
我主要是出于好奇而问,所以我没有具体的背景。
问题:
是否可以让 JPA 保留一个字段但被序列化跳过?
有可能达到相反的效果(JPA 跳过一个字段而序列化没有),如果使用此功能,那么反过来肯定会很有用。
像这样的东西:
@Entity
class MyClass {
// Other fields.
@NonTransient
private transient String strangeField;
}
我主要是出于好奇而问,所以我没有具体的背景。
一种选择是在实体上使用属性访问。然后,将该字段标记为瞬态。JPA 将忽略该字段并仅使用 getter。因此,序列化会跳过该字段,而 JPA 使用 getter。
@Entity(AccessType.Property)
class MyClass {
// Other fields.
private transient String strangeField;
public String getStrangeField() {
return strangeField;
}
public void setStrangeField(String strangeField) {
this.strangeField = strangeField;
}
}
您需要使用属性访问,或使用 XML 来映射实体而不是注释。