如何使用spring数据cassandra cassandratemplate更新用户定义类型(udt)的字段

s71maibg  于 2021-06-13  发布在  Cassandra
关注(0)|答案(0)|浏览(383)

我有一个cassandra表,其中包含一个用户定义的类型。使用 CassandraTemplate 从spring数据cassandra,我想更新udt的一个字段。这似乎不可能。
我试过这个:

database.update(query(
        where("party_id").is(partyId)).and(where("relationship_id").is(relationshipId)),
        update("address.address_line_1", "this field was updated"),
        Address.class);

它抛出:

Query error after 3 ms: UPDATE current_addresses_by_party SET "address.address_line_1"=? WHERE party_id=? AND relationship_id=?;com.datastax.driver.core.exceptions.InvalidQueryException: Undefined column name "address.address_line_1"

运行错误输出中给定的cql而不使用引号是有效的。我不知道是否有办法让spring执行这个语句而不把列名加引号。
出于乐观,我还尝试使用Map类型的语法:

database.update(query(
        where("party_id").is(partyId)).and(where("relationship_id").is(relationshipId)),
        Update.empty().set("address").atKey("address_line_1").to("this field was updated"),
        Address.class)

这导致了预期的错误:字段不是Map。
有什么办法可以让我做我想做的吗 CassandraTemplate 而不诉诸于直接的cql?如果 CassandraTemplate 如果没有这个特性,如果开发人员添加它就太好了。
我很惊讶,我找不到其他人想这么做。也许我做错了什么?我对Cassandra还很陌生。

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题