使用 Spring Data Redis 进行序列化时如何正确忽略类成员?

我希望有人能提供帮助,因为我真的不知道如何解决以下问题:我想使用 Spring Data Redisin序列化Entity和ThumbnailUrlEntity(见下面的代码)的一些对象CrudRepository。由于类有会员我不想连载,我试图通过任何注释类本身有忽略它们以各种方式@JsonIgnoreProperties或通过与标注各部件/性能@JsonIgnore或Filters在RedisConfig.java用CustomConversion。


现在的问题是,无论我尝试哪种忽略方式,org.springframework.data.keyvalue.core.UncategorizedKeyValueException: Path to property must not be null or empty.; nested exception is java.lang.IllegalArgumentException: Path to property must not be null or empty.当我尝试保存相应的对象时,总是会遇到相同的错误。(有关更多详细信息,请参阅下面的 Stacktrace)


我什至在这些课程中使用 MixIn 尝试过,但效果不佳......


所以问题是:如何在使用 Spring-Data-Redis 序列化某个类的对象时正确忽略属性?


实体.java


@EqualsAndHashCode(exclude = "domainObject")

@ToString(exclude = "domainObject")

@NoArgsConstructor

//@JsonIgnoreProperties("domainObject")

@JsonFilter("myEntityFilter")

public abstract class Entity<T extends DomainObject> {

    @TimeToLive

    protected final static long TIME_TO_LIVE = 60 * 60 * 24;


    @Id

    @Indexed

    private String id;


//    @Transient

//    @JsonIgnore

    private T domainObject;


    public Entity(@NotNull T domainObject) {

        this.domainObject = domainObject;

    }


    public abstract Entity<T> createFromDomainObject(@NotNull T domainObject);


    public abstract void updateFromDomainObject(T domainObject);


    public void updateFromDomainObject() {

        this.updateFromDomainObject(this.getDomainObject());

    }


    public String getId() {

        return id;

    }


//    @Transient

//    @JsonIgnore

    public T getDomainObject() {

        return domainObject;

    }


    public void setDomainObject(T domainObject) {

        this.domainObject = domainObject;

    }

}


米脂
浏览 478回答 1
1回答

桃花长相依

我认为您可以执行以下操作之一:首先,您可以尝试使当前版本工作,这似乎并不容易。您是否为 Redis配置了正确的序列化程序?在链接上有这个答案:使用 StringRedisTemplate 替换 RedisTemplate。默认情况下,RedisTemplate 使用 Java 序列化,StringRedisTemplate 使用 StringRedisSerializer。这也可以解决您的问题...为 Redis 使用专用 POJO 的第二个选项。您可以手动或使用 Java bean 映射器(如MapStruct )进行值交换。第三个选项可能是使用自定义序列化程序
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python