我是Cassandra的新手。我在网上看了很多例子。这是GitHub上的JHipster Cassandra示例中的一个:
https://gist.github.com/jdubois/c3d3bedb869466731316
存储库save(user)方法执行读取(查找存在),然后在用户数据发生更改时,在所有非规范化表中删除并重新插入现有用户。
这是最佳做法吗? 这只是因为这个样本的数据模型是如何设计的? 这个样本的设计是将POJO框架扭曲成NoSQL数据库设计的结果吗?
我想什么时候才能在Cassandra中进行更新?它支持字段级别的更新,因此看起来这是首选。
答案 0 :(得分:0)
首先,删除操作应该是批处理的一部分,以实现更强大的错误处理。但看起来代码中也存在一些并发问题。它将根据之前读取的当前用户值更新用户。假设这仍然是最新值而save()实际执行时,不能保存。它还将覆盖查找表中可能正在为该点的其他用户使用的任何键。例如。执行insertByLoginStmt时,其他用户可能已经存在登录。