簡體   English   中英

Spring數據@Transient在抽象類中

[英]Spring data @Transient in abstract class

我有一個名為“ presentation”的抽象類實現的策略模式

@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.PROPERTY, property = "type")

@JsonSubTypes({
@Type( value=PiePresentation.class, name="PIE"),
@Type( value=BarPresentation.class, name="BAR")})

public abstract class Presentation {

    String id;
    List<? extends DetailResponse> data =  new ArrayList();
    String[] variables;
    Map<String, Object> configurations;        

    @Transient
    protected ExecutionState state;
}

還有兩個子類,這是其中之一

public class PiePresentation extends Presentation{

    @Transient
    private List<Segment> response;

}

這些類是存儲在mongo集合中的另一個類的字段。 問題在於spring數據正在存儲Presentation類的state字段,就像在繼承中@Transient注釋被忽略一樣。

您的代碼對我來說看起來不錯。

您確定使用正確的@Transient注釋嗎? 必須從org.springframework.data.annotation包中導入。 不要使用javax持久性之一。

此外,請確保使用MappingMongoConverter 僅當您將MappingMongoConverter用作MongoTemplate的后備轉換器時,基於注釋的映射才有效。 如果您未配置轉換器,則默認情況下將使用SimpleMongoConverter,該對象僅將對象序列化到Mongo中,而無需查看任何元信息。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM