Spring Data和Redis - 序列化瞬态字段

时间:2018-04-13 14:10:50

标签: java redis spring-data

我使用Redis作为我的数据库使用Spring数据,没有自定义值或哈希值序列化程序。我假设应该使用standrad JdkSerializationRedisSerializer进行对象序列化。 看起来某些对象的瞬态字段被序列化到数据库中。

瞬态场修改器,瞬态方法注释,@ JsonIgnore属性 - 所有这些都不会影响字段的序列化。

我如何克服这个问题?

2 个答案:

答案 0 :(得分:0)

我遇到了这个问题,虽然我最初将该字段标记为瞬态,但我相信会使其变为瞬态;-)在涉及到弹簧数据重做时并没有。

对我有用的是注释字段:

ExternalImageId

pojo不必实现Serializable,并且该字段也不必标记为瞬态。我想这样做仍然是Java的良好做法,但这不是必需的。

答案 1 :(得分:0)

我知道对于可怜的马特来说这已经太迟了两年,但是我们最近也遇到了这个问题。 似乎起作用的是:

  1. 在Java类上设置序列化ID。 Eclipse和IntelliJ都会为您生成一个。 -1似乎不起作用。
  2. 使用过渡Java修饰符,而不是Spring @Transient标记。

public class CachedValues implements Serializable {
    private static final long serialVersionUID = -914745617137492359L;
    private Long id;
    private transient String nonRedisField;
    ...
}