【发布时间】:2018-01-05 20:20:03
【问题描述】:
我很难理解 JPA 的瞬态注释。我假设用 Transient 注释标注的字段将存储在本地缓存中,而不是持久保存在 DB 中。我基本上想知道什么时候会从本地缓存中清除它? 我将其用于表以存储其间歇状态,并在调用外部服务后返回的方法中使用此值。这是一个合适的用例吗?如果是这样,这种瞬态场的生命周期是多少?
【问题讨论】:
我很难理解 JPA 的瞬态注释。我假设用 Transient 注释标注的字段将存储在本地缓存中,而不是持久保存在 DB 中。我基本上想知道什么时候会从本地缓存中清除它? 我将其用于表以存储其间歇状态,并在调用外部服务后返回的方法中使用此值。这是一个合适的用例吗?如果是这样,这种瞬态场的生命周期是多少?
【问题讨论】:
@Entity
class Sample {
@Transient
String fieldOne;
transient String otherField;
}
fieldOne 不是临时的(没有transient 关键字),所以是序列化的(到/从缓存、网络、文件或其他来源)。但是JPA不会将它存储在数据库中,因为注释拒绝。
otherField 不可序列化,具有 transient 关键字(即从缓存引擎获取后,或网络可以/将为空),但在 JPA 数据库中以默认行为困扰
这不是学术讨论,有时是有用的。通常是从其他人计算的值,或散列/加密/隐藏字段。
【讨论】:
transient 的字段。对于阅读此问题的任何人,请参阅stackoverflow.com/questions/2154622/… 以获得更详细的解释