我想在我的 nosql 映射实体中有以下字段:
私有列表 cookieIds;
我可以有一个列表转换器吗?在这种情况下,数据将如何保存在 Casssandra 中?
关于如何编写自定义转换器的任何提示都会很棒。
我想在我的 nosql 映射实体中有以下字段:
私有列表 cookieIds;
我可以有一个列表转换器吗?在这种情况下,数据将如何保存在 Casssandra 中?
关于如何编写自定义转换器的任何提示都会很棒。
大声笑,我们正在实现处理该问题的@NoSqlEmbedded 标记,但它还没有完成,因为我正在尝试实现它,所以我也可以进行递归(想想@NoSqlEmbedded 的层次结构。)我们已经完成扫描但需要实施编组/解组。
注意:我将尝试在本周末结束之前通过单元测试完成 @NoSqlEmbedded。
列表中的每个项目都必须是唯一的(即它实际上是一个集合而不是一个列表)。那么假设你有这个
public Request {
@NoSqlId
private String id;
@NoSqlEmbedded
private List<String> cookieIds;
private String property1;
}
它将像这样存储
rowkey(id) -> property1="something", cookieIds:cookieValue1=null, cookieIds:cookieValue2=null, cookieIds:cookieValue3=null
所以,现在我们应该告诉你我们不这样存储它的原因......
rowkey(id) -> property1="something", cookieIds=cookieValue1, cookieValue2, cookieValue3
事实证明,如果您有两台机器在此处读取请求,一台机器添加 cookieValue4,另一台机器删除 cookieValueValue2,在我们的实现中,您正确地以 cookieValue1、cookieValue3、cookieValue4 结束,如果我们像第二个版本一样存储它,一个服务器将获胜,因此您最终会得到这两个结果之一(理想情况下,您希望一个删除和一个添加独立工作)
我希望这是有道理的。现在,没有@NoSqlEmbedded 标签,您可以使用第二种方法并拥有一个转换器,就像我在您的日期帖子中回复的那样。如果您编写日期转换器,我想您会明白如何做到这一点。首先尝试使用日期转换器作为练习。
让我知道如果你在那之后还有问题。
院长