我有一个使用spring-boot-starter-redis的spring-boot应用程序(1.4RC1,我知道它是RC,但不是Spring Data Redis 1.7.2)。
该应用程序使用Spring Data Repository(CrudRepository
),该对象应使用和属性以及一个自定义类属性(也仅具有和作为属性@RedisHash
)保存一个对象(使用批注)。String
Boolean
Strings
Longs
当我(通过存储库)保存对象时,一切正常,并且可以看到数据库中的所有属性。当我想(通过存储库)从数据库读取数据时,我只能从父对象获取属性。自定义类属性为null。
我希望也能从数据库中加载该属性。如文档所述,您可以编写一个自定义转换器,但是由于我不需要这样做,因此当我要写入数据时,也不需要编写一个读取转换器。
我想知道是否需要注释自定义类属性,但在文档中找不到任何内容。你能为我指出正确的方向吗?
这些类如下:
类样本:
@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;
}
}
类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
正确读取。谢谢克里斯托夫!
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句