@transient 注解 和 transient變量的作用


@transient 和 transient是兩碼事

1.@transient的作用

@transient是hibernate和Morphia中的注解,hibernate都熟悉,Morphia是通過同提供一系列圍繞mongo java驅動程序的注釋和包裝程序。

hibernate: 實體類中使用了@Table注解后,想要添加表中不存在字段,就要使用@Transient這個注解了。

morphia:想把某個屬性排除映射到Mongo中,可以使用@transient注解想



java中的transient是針對於對像序列化的,當一個對象實現了serilizable接口,這個對象就可以被序列化。對象的某些屬性需要序列化,而有些屬性不需要被序列化,例如,賬號密碼不想被序列化,這時候就可以在變量前面加上transient關鍵字。這個字段的周期僅存在於調用者內存中而不會被寫到磁盤里持久化。

總結:一旦被transient聲明的變量, 將不是對象持久化的一部分,該變量內容在序列化后無法獲得訪問。

transient只能修飾變量,不能修飾方法和類。注意,本地變量是不能被transient修飾的,如果變量是用戶自定義的變量,則該類需要實現serializable接口。被transient的變量不能被序列化,一個靜態變量不管是否被transient修飾,均不能被序列化。

深入理解的話看這篇文字:https://www.cnblogs.com/lanxuezaipiao/p/3369962.html


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM