我想了解是否有可能在JPA實體中有一個未映射的屬性,並且還有序列化。我想這樣做是因爲我想查詢數據庫中的行,然後對這些返回的字段中的一些進行計算,並將結果填充到一個未映射的字段中。不過,我看到在實體中添加未映射屬性的唯一解決方案是使用@Transient註釋,這意味着該屬性不會序列化。在JPA實體中序列化一個未映射的屬性
任何想法/解決方法?
我想了解是否有可能在JPA實體中有一個未映射的屬性,並且還有序列化。我想這樣做是因爲我想查詢數據庫中的行,然後對這些返回的字段中的一些進行計算,並將結果填充到一個未映射的字段中。不過,我看到在實體中添加未映射屬性的唯一解決方案是使用@Transient註釋,這意味着該屬性不會序列化。在JPA實體中序列化一個未映射的屬性
任何想法/解決方法?
我希望RigreGarciandía的回答工作(即使用@Transient),但...
您可以實現外部化。它可以讓你的序列化和反序列化的完全控制,所以你可以寫和讀你喜歡的任何字段(並且可以在我的經驗提高性能作爲附帶的好處):與@Transient註釋
http://docs.oracle.com/javase/7/docs/api/java/io/Externalizable.html
場它應該使用Java序列化api進行序列化,檢查是否有修飾符瞬態,該修飾符不允許您序列化該字段。
「@ Transient」註釋僅適用於JPA。如果序列化一個對象,該屬性將被正常序列化(除非它具有'transient' **修飾符**)。所以請使用@Transient註解,因爲這是做你想做的事的正確方法。 – Augusto
從javax.persistence中添加@Transient實際上不會爲我序列化它。 – user3397214
你怎麼知道它沒有序列化? –