zoukankan      html  css  js  c++  java
  • @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

  • 相关阅读:
    linkedLoop
    loopqueue
    expect 切换用户
    二叉树的实现
    栈的链表实现, 底层使用链表
    栈的数组实现
    RSA加密算法
    输入一个链表,反转链表后,输出链表的所有元素
    输入一个链表,输出该链表中倒数第k个结点
    ansible中include_tasks和import_tasks
  • 原文地址:https://www.cnblogs.com/zhuyeshen/p/10985229.html
Copyright © 2011-2022 走看看