无法在Spring Boot Data Cassandra应用程序中运行应用程序,因为在character'ı';
我已经开始开发一个spring boot数据cassandra应用程序。我正在使用Cassandra在SpringConfigurationClass中进行配置。当我启动应用程序时,它抛出SyntaxError和CassandraQuerySyntaxException。启动时,为作为帐户实体的表创建cql。它有一个时间戳字段,即“private Date createdAt” 通常,timestamp有一个“i”字符,但cql有“ı”,所以它尝试运行一个cql有“tımestamp”字符 如何解决此问题并继续 我的配置类:无法在Spring Boot Data Cassandra应用程序中运行应用程序,因为在character'ı';,spring,cassandra,syntax-error,cql,spring-data-cassandra,Spring,Cassandra,Syntax Error,Cql,Spring Data Cassandra,我已经开始开发一个spring boot数据cassandra应用程序。我正在使用Cassandra在SpringConfigurationClass中进行配置。当我启动应用程序时,它抛出SyntaxError和CassandraQuerySyntaxException。启动时,为作为帐户实体的表创建cql。它有一个时间戳字段,即“private Date createdAt” 通常,timestamp有一个“i”字符,但cql有“ı”,所以它尝试运行一个cql有“tımestamp”字符 如何
@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:
看起来CQL语句中无意中包含了扩展字符或特殊字符
如果已从Word文档等文件复制并粘贴了Windows计算机上的架构定义,请确保先将其清理干净。例如,您可以将模式粘贴到记事本中,并将其保存为文本文件,然后将该文件用作源文件。干杯 @ErikRamirez我也有同样的问题。如何修复它?@TonyBrand您需要确保架构定义中没有特殊字符。干杯
@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;
}