问题描述
我已经开始开发一个 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 (将#修改为@)