【发布时间】:2020-05-27 00:03:33
【问题描述】:
在 java 中,如何声明一个对数据库不持久但可序列化的变量,以便该变量存在于包含该变量的对象的 JSON 表示中?
我使用了注解@javax.persistence.Transient,但由于@Transient 变量不可序列化,所以它不能按我想要的方式工作。
【问题讨论】:
标签: java serialization persistence transient
在 java 中,如何声明一个对数据库不持久但可序列化的变量,以便该变量存在于包含该变量的对象的 JSON 表示中?
我使用了注解@javax.persistence.Transient,但由于@Transient 变量不可序列化,所以它不能按我想要的方式工作。
【问题讨论】:
标签: java serialization persistence transient
该问题可以通过使用修饰符的特定解决方法来解决。为了避免持久化字段,您有 4 个选项:使用修饰符 static、final 或 transient 标记字段;或添加 @Transient 注释。每一个都将阻止该字段被持久化到数据库中(请参阅here)。
但并非所有这些限制也适用于序列化。 Static 和 transient 修饰符将阻止序列化,但 final 修饰符不会 - 它不会被持久化但会被序列化(在这种情况下反序列化是稍长一点,但可能)。
我希望这适用于您的问题。
【讨论】: