gpt4 book ai didi

java - Spring Data Cassandra 自定义插入查询在字符串中的 '.' 处失败

转载 作者:行者123 更新时间:2023-12-02 05:34:28 24 4
gpt4 key购买 nike

我编写了一个自定义保存查询,以便我可以在每个项目上添加可配置的 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);
}

这是我的表格:

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:第 1:110 行不匹配的输入“eyJhbGciOiJIUzUxMiJ9”期望“)”(...plan)值(“c7a8fd65-8ef5-420e-b02e-898fe248bbf3” , ''[eyJhbGciOiJIUzUxMiJ9]....);嵌套异常是 com.datastax.driver.core.exceptions.SyntaxError:第 1:110 行不匹配输入 'eyJhbGciOiJIUzUxMiJ9' 期望 ')' (...plan) 值 ('c7a8fd65-8ef5-420e-b02e-898fe248bbf3', '' [eyJhbGciOiJIUzUxMiJ9]....)

尝试使用 CQLSH 手动添加它,我也收到“.”错误:

SyntaxException:第 1 行:826 输入“.”时没有可行的替代方案(...“计划”)值(c7a8fd65-8ef5-420e-b02e-898fe248bbf3,[eyJhbGciOiJIUzUxMiJ9].hsdyu7832uwhjjdsjkdse...)

任何人都可以看到我如何让它添加整个字符串,而不仅仅是停在“.”处?

最佳答案

您可以尝试使用PreparedStatement

String originalPlan = "eyJhbGciOiJIUzUxMiJ9.hsdyu7832uwhjjdsjkdsew2389dhj";
PreparedStatement preparedStatement = cqlTemplate.getSession().prepare("insert into plans (user_id, plan) values (?, ? )");
Statement insertStatement = preparedStatement.bind(UUIDs.timeBased(), originalPlan );
cqlTemplate.execute(insertStatement);

关于java - Spring Data Cassandra 自定义插入查询在字符串中的 '.' 处失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56181870/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com