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

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

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

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

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

类(class)如下:

类(class)样本:

@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;
    }

}

类示例配置:
@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;

}

最佳答案

我按照 Christoph Strobl 的建议将 @NoArgsConstructor 添加到我的 Sample 类中。然后存储库正确读取 SampleConfiguration。谢谢,克里斯托夫!

关于spring-boot - Spring Data Redis Repository 支持不回读嵌入的复杂对象,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/38595042/

10-11 22:22
查看更多