Spring Data Redis Repository支持不会读回嵌入的复杂对象

时间:2016-07-26 16:16:49

标签: spring-boot spring-data spring-data-redis

我有一个spring-boot应用程序(1.4RC1,我知道它的RC,但Spring Data Redis 1.7.2不是),我使用的是spring-boot-starter-redis。

应用程序使用Spring Data Repository(CrudRepository),它应该使用@RedisHashString属性以及一个自定义类属性保存对象(使用Boolean注释),它也只有StringsLongs作为属性。

当我保存一个对象(通过存储库)时,一切都很顺利,我可以看到数据库中的所有属性,正如我所期望的那样。 当我想从数据库中读取数据(通过存储库)时,我只从父对象中获取属性。自定义类属性为null。

我希望从数据库中加载属性。正如文档所述,您可以编写custom converter,但由于我不需要这样做,因此当我想写数据时,我也不需要编写读取转换器。

我想知道是否需要注释自定义类属性,但我无法在文档中找到任何内容。你能指出我正确的方向吗?

课程如下:

班级样本:

@Data
@EqualsAndHashCode(exclude = {"isActive", "sampleCreated", "sampleConfiguration"})
@RedisHash
public class Sample {

    @Id
    private String sampleIdentifier;

    private Boolean isActive;

    private Date sampleCreated;

    private SampleConfiguration sampleConfiguration;

    public Sample(String sampleIdentifier, SampleConfiguration sampleConfiguration){
        this.sampleIdentifier = sampleIdentifier;
        this.sampleConfiguration = sampleConfiguration;
    }

}

Class SampleConfiguration:

@Data
public class SampleConfiguration {

    private String surveyURL;

    private Long blockingTime;

    private String invitationTitle;

    private String invitationText;

    private String participateButtonText;

    private String doNotParticipateButtonText;

    private String optOutButtonText;

    private Long frequencyCappingThreshold;

    private Long optOutBlockingTime;

}

1 个答案:

答案 0 :(得分:2)

我向@NoArgsConstructor课程添加了Sample,正如Christoph Strobl建议的那样。然后存储库正确读取SampleConfiguration。谢谢,克里斯托弗!