为序列化创建一个字段瞬态,但JPA是非瞬态的

时间:2013-04-09 23:50:11

标签: java jpa serialization jpa-2.0 eclipselink

问题:
JPA是否可以保留字段,但序列化会跳过该字段?

可以实现相反的目标(JPA跳过字段而序列化不会),如果使用此功能,反过来肯定会有用。

这样的事情:

@Entity 
class MyClass {
    // Other fields.

    @NonTransient
    private transient String strangeField;
}

我主要是出于好奇,所以我没有特定的背景。

2 个答案:

答案 0 :(得分:2)

一种选择是在实体上使用属性访问权限。然后,将该字段标记为瞬态。 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;
    }
}

答案 1 :(得分:0)

您需要使用属性访问权限,或使用XML来映射实体而不是注释。