竹笋

首页 » 问答 » 问答 » Spring中国教育管理中心Apach
TUhjnbcbe - 2023/4/8 11:34:00

10.7.保存、更新和删除行

ReactiveCassandraTemplate为您提供了一种简单的方法来保存、更新和删除域对象并将这些对象映射到Cassandra中管理的表。

10.7.1.插入和更新行的方法

CassandraTemplate有几种方便的方法来保存和插入您的对象。要对转换过程进行更细粒度的控制,您可以Converter使用MappingCassandraConverter(例如,ConverterRow,Person)注册Spring实例。

插入和更新操作的区别在于INSERT操作不插入null值。

使用该INSERT操作的简单案例是保存一个POJO。在这种情况下,表名由简单的类名(而不是完全限定的类名)确定。可以使用映射元数据覆盖存储对象的表。

插入或更新时,id必须设置该属性。ApacheCassandra无法生成ID。

以下示例使用保存操作并检索其内容:

示例67.使用CassandraTemplate

importstaticorg.springframework.data.cassandra.core.query.Criteria.where;importstaticorg.springframework.data.cassandra.core.query.Query.query;…Personbob=newPerson("Bob",33);cassandraTemplate.insert(bob);MonoPersonqueriedBob=reactiveCassandraTemplate.selectOneById(query(where("age").is(33)),Person.class);

您可以使用以下操作进行插入和保存:

voidinsert(ObjectobjectToSave):在ApacheCassandra表中插入对象。

WriteResult插入(ObjectobjectToSave,InsertOptionsoptions):在ApacheCassandra表中插入对象并应用InsertOptions。

您可以使用以下更新操作:

voidupdate(ObjectobjectToSave):更新ApacheCassandra表中的对象。

WriteResult更新(ObjectobjectToSave,UpdateOptionsoptions):更新ApacheCassandra表中的对象并应用UpdateOptions。

您还可以使用老式的方式编写自己的CQL语句,如下例所示:

Stringcql="INSERTINTOperson(age,name)VALUES(39,Bob)";MonoBooleanapplied=reactiveCassandraTemplate.getReactiveCqlOperations().execute(cql);

您还可以在使用InsertOptions和时配置其他选项,例如TTL、一致性级别和轻量级事务UpdateOptions。

我的行插入到哪个表中?

您可以通过两种方式管理用于对表进行操作的表名。默认表名是更改为以小写字母开头的简单类名。因此,

1
查看完整版本: Spring中国教育管理中心Apach