Java 缺少必需的主键部件版本
我正在开发一个spring应用程序,使用spring向datastax cassandra插入一条记录。 下面是用于创建表的脚本Java 缺少必需的主键部件版本,java,spring,cassandra,datastax,Java,Spring,Cassandra,Datastax,我正在开发一个spring应用程序,使用spring向datastax cassandra插入一条记录。 下面是用于创建表的脚本 CREATE TABLE user( name text, source text, createddate timestamp, version timestamp, id timeuuid, system text,
CREATE TABLE user(
name text,
source text,
createddate timestamp,
version timestamp,
id timeuuid,
system text,
desc text,
PRIMARY KEY((name,source,createddate),version)
);
下面是我为连接cassandra表而编写的dto
@PrimaryKeyClass
public class User implements Serializable{
/**
*
*/
private static final long serialVersionUID = 1L;
@PrimaryKeyColumn(ordinal = 0,type = PrimaryKeyType.PARTITIONED)
private String name;
@PrimaryKeyColumn(ordinal = 1,type = PrimaryKeyType.PARTITIONED)
private String source;
@PrimaryKeyColumn(ordinal = 2,type = PrimaryKeyType.PARTITIONED)
private Date createddate;
@PrimaryKeyColumn(ordinal = 3,type = PrimaryKeyType.CLUSTERED)
private Date version;
private UUID id;
private String system;
private String desc;
但当我尝试插入记录时,它抛出了异常“com.datastax.driver.core.exceptions.InvalidQueryException:缺少必需的主键部分版本”。请帮我解决这个问题。非常感谢。1°)您是否检查了版本
字段是否为空
2°)由于我从未使用过Cassandra的Spring数据,我不确定,但通过查看,也许您可以:
- 创建一个专用的主键类,用
@PrimaryKeyClass
- 将您的
注释属性放入其中@PrimaryKeyColumn
- 在
类中使用新的主键类,并用User
@PrimaryKey