【发布时间】:2011-05-26 12:23:00
【问题描述】:
我有一个基础实体类,它将派生在一百多个子类中。
为了确保持久化字段是我想要的(而不是该基类的用户),我想声明这个 JPA 实体默认将所有字段设置为瞬态。
这怎么可能?
【问题讨论】:
-
据我所知,JPA 假定默认情况下所有字段都是持久的,因此您必须逐个字段使用 @Transient。我知道没有办法覆盖默认值。
-
我想你可以看看创建一个持久化的实体视图,然后使用复制构造函数实例化你的实体。因此,在实体调用 getPersistentState 时,它返回要保存到数据存储区的 PersistentEntity,然后当您读回它时,通过传入从数据存储区返回的 PersistentEntity 来创建实体。如果您不拥有基类,这听起来可能是一个不错的选择,因为您的持久性将始终与未拥有的超类相关联。
标签: java persistence jpa-2.0