LiveObjectService#persist returns 空对象

LiveObjectService#persist returns empty object

我正在使用 Redisson Live Objects 3.13.2,我有以下对象:

@Getter
@ToString
@Builder
@AllArgsConstructor
@NoArgsConstructor
@REntity
public class ReporterObject {
    @RId
    private long id;
    private long rId;
    @RIndex
    @Setter
    private long sId;
    @Setter
    private boolean ac;
    @RIndex
    @Setter
    private Long parId;
    private int type;
    private Long pId;
    @Setter
    private ReporterObject parent; // can be null
    @Setter
    private int n_a = 0;
}

所以我有两个问题:

  1. 当我这个操作(覆盖当前对象)时:
liveObjectService.delete(ReporterObject.class, reporterObject.getRId());
return liveObjectService.persist(reporterObject);

我有时会得到 java.lang.IllegalArgumentException: This REntity already exists. 尽管我事先执行了删除。即使在那之前缓存完全为空我也能得到它。

  1. 有时在坚持操作应该成功之后,我收到的是一个空对象,所以当我尝试获取任何字段时(例如调用 ReporterObject#getParent 抛出 NullPointerException 并且当我调试时它,我看到一个空对象或不是“完全完整”的对象: .在这个例子中,我只有 sIdtype 但没有 id ,没有 rId,没有 ac 等。正如我所说,如果我尝试 getAc() a NullPointerException 被抛出。当然不仅仅局限于这个领域。有时是缺少其他字段。有时我会得到一个像这样的完全空的对象:

Redis 版本为 6.0.5.

关于在这种情况下该怎么做的任何想法?

谢谢!

打开了一个已解决的错误: https://github.com/redisson/redisson/issues/2935