我正在使用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;
}
所以我有两个问题:
执行此操作(覆盖当前对象)时:
liveObjectService.delete(ReporterObject.class, reporterObject.getRId());
return liveObjectService.persist(reporterObject);
我有时会 java.lang.IllegalArgumentException: This REntity already exists.
虽然我事先做了一个删除。我可以得到它,即使缓存在那之前是完全空的。
有时在持久化操作假定成功之后,我收到的是一个空对象,因此当我尝试获取任何字段(例如调用 ReporterObject#getParent
一 NullPointerException
当我调试它时,我看到一个空对象或不是“完全满”对象:
. 在这个例子中,我只有 sId
以及 type
但是没有 id
,否 rId
,否 ac
如我所说,如果我想 getAc()
一 NullPointerException
被抛出。当然不仅仅限于这个领域。有时是其他字段丢失了。有时我会得到这样一个完全空的物体:
redis版本是6.0.5。
在这种情况下有什么办法吗?
谢谢!
1条答案
按热度按时间72qzrwbm1#
打开已解决的错误:https://github.com/redisson/redisson/issues/2935