我已经编写了一个自定义保存查询,以便可以在每个项上添加一个可配置的ttl。这是我的回购协议:
@Repository
public interface MyCassandraRepository extends
TypedIdCassandraRepository<MyCassandraItem, UUID> {
@Query("insert into " + TABLE_NAME + " (" + CQL_UUID + ", " + CQL_PLAN + ") values (?0, ?1) using ttl ?2")
MyCassandraItem customSaveWithTtl(UUID uuid, String plan, Integer ttl);
}
这是我的table:
CREATE TABLE IF NOT EXISTS my_users.plans (
user_id uuid,
plan text,
PRIMARY KEY (user_id)
) ;
但是,当我尝试添加一个计划字符串包含句号/句点的条目时(例如。 eyJhbGciOiJIUzUxMiJ9.hsdyu7832uwhjjdsjkdsew2389dhj
),我得到以下错误: org.springframework.cassandra.support.exception.CassandraQuerySyntaxException: line 1:110 mismatched input 'eyJhbGciOiJIUzUxMiJ9' expecting ')' (...plan) values ('c7a8fd65-8ef5-420e-b02e-898fe248bbf3', ''[eyJhbGciOiJIUzUxMiJ9]....); nested exception is com.datastax.driver.core.exceptions.SyntaxError: line 1:110 mismatched input 'eyJhbGciOiJIUzUxMiJ9' expecting ')' (...plan) values ('c7a8fd65-8ef5-420e-b02e-898fe248bbf3', ''[eyJhbGciOiJIUzUxMiJ9]....)
尝试使用cqlsh手动添加它时,我还得到了一个“.”错误: SyntaxException: line 1:826 no viable alternative at input '.' (... "plan") VALUES (c7a8fd65-8ef5-420e-b02e-898fe248bbf3, [eyJhbGciOiJIUzUxMiJ9].hsdyu7832uwhjjdsjkdse...)
有人知道我怎样才能让它加上整个字符串,而不是仅仅停留在“.”处吗?
1条答案
按热度按时间vsikbqxv1#
您可以尝试使用preparedstatement