无法在 Spring Boot Data Cassandra App 中运行应用程序,因为语法查询错误在字符 'ı' 处没有可行的替代方案

问题描述

我已经开始开发一个 spring boot data cassandra 应用程序。我正在使用 Cassandra 在 SpringConfigurationClass 中进行配置。当我启动应用程序时,它会抛出 SyntaxError 和 CassandraQuerySyntaxException。开始时,为 Account Entity 表创建一个 cql。它有一个时间戳字段,即“private Date createdAt”。

通常,时间戳具有“i”字符,但 cql 具有“ı”,因此它尝试运行具有“tımestamp”的 cql。

 Caused by: org.springframework.data.cassandra.CassandraQuerySyntaxException: 
 Query; CQL [CREATE TABLE IF NOT EXISTS accounts (created_at tımestamp,email text,id text,is_active boolean,passwd text,uname text,PRIMARY KEY (id));]; 
 line 1:49 no viable alternative at character 'ı'; nested exception is 
 com.datastax.oss.driver.api.core.servererrors.SyntaxError: 
 line 1:49 no viable alternative at character 'ı'

我该如何解决这个问题并继续?

我的配置类:

@Configuration
@EnableCassandraRepositories
public class CassandraConfiguration extends AbstractCassandraConfiguration {

@Value("${accountservice.cassandra.keyspace.name}")
private String keyspaceName;

@Value("${accountservice.cassandra.port}")
private int port;

@Value("${accountservice.cassandra.contact.point}")
private String contactPoint;

@Value("${accountservice.cassandra.uname}")
private String uname;

@Value("${accountservice.cassandra.passwd}")
private String passwd;

@Override
protected String getKeyspaceName() {
    return keyspaceName;
}

public String getPasswd() {
    return passwd;
}

public String getUname() {
    return uname;
}

@Override
protected String getContactPoints() {
    return contactPoint;
}

@Override
protected int getPort() {
    return port;
}

@Override
public String[] getEntityBasePackages() {
    return new String[] {"com.trius.accountservice"};
}

@Override
public SchemaAction getSchemaAction() {
    return SchemaAction.CREATE_IF_NOT_EXISTS;
}

@Override
public CqlSessionFactoryBean cassandraSession() {
    CqlSessionFactoryBean cqlSessionFactoryBean = super.cassandraSession();
    cqlSessionFactoryBean.setPassword(getPasswd());
    cqlSessionFactoryBean.setUsername(getUname());
    return cqlSessionFactoryBean;
}
}


My Table:
    
        @Data
        @Builder
        @AllArgsConstructor
        @NoArgsConstructor
        @EqualsAndHashCode(of = {"id"})
        @ToString
        @Table(value = "accounts")
        public class Account implements Serializable {
    @PrimaryKey
    private String id = UUID.randomUUID().toString();

    @Column(value="uname")
    private String username;
    @Column(value="email")
    private String email;
    @Column(value="passwd")
    private String passwd;
    @Column(value="is_active")
    private Boolean active;
    @Column(value="created_at")
    private Date createdAt;
     }

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)