2013-04-09 70 views
1

問題:
是否有可能讓JPA保留字段但通過序列化跳過?爲JPA創建一個字段瞬態,但JPA不是瞬態的

它可以實現相反(JPA跳過一個字段和序列化不),如果使用此功能,肯定會反過來是有用的。

事情是這樣的:

@Entity 
class MyClass { 
    // Other fields. 

    @NonTransient 
    private transient String strangeField; 
} 

我問大多是出於好奇,所以我沒有一個具體的情境。

回答

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; 
    } 
} 
0

您需要使用屬性訪問權限,或者使用XML映射實體而不是註釋。