我有以下课程

@Embeddable
public class SharedClass {
    ...
    private String legacyField;
    ...
}

@Entity
public class LongStandingEntity {
    ...
    private SharedClass sharedClass;
    ...
}


legacyfield将一些过时的数据存储在较旧的对象中,但不会为新的对象收集。但是,我确实需要能够继续访问旧数据。

我正在创建一个也使用SharedClass的新实体

@Entity
public class NewEntity {
    ...
    private SharedClass sharedClass;
    ...
}


它不需要legacyField,而我想避免在数据库中为其添加一列,同时保持LongStandingEntity的映射正常。

JPA注释可以吗?

最佳答案

我不记得有什么可以帮助您的特定注释。尽管如此,我还是希望采用这种情况下的设计方法。如果您的字段仅属于某个类,则将其分为另一个仅与旧数据相关联的embedabble类。

在我看来,这似乎是一种更清洁的方法,只是为了使各个实体保持明显区别。

07-24 09:27