缺少必需的PRIMARY KEY零件版本

时间:2015-11-05 09:39:01

标签: java spring cassandra datastax

我正在使用spring应用程序将记录插入到使用spring的datastax cassandra中。 下面是我用来创建表格的脚本。

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:缺少必需的PRIMARY KEY部分版本”。请帮我解决这个问题。非常感谢。

1 个答案:

答案 0 :(得分:0)

1°)您是否检查过version字段不是null

2°)因为我从来没有使用过Cassandra的Spring Data我不确定,但是看看those annotations documentation也许你可以:

  • 创建一个使用@PrimaryKeyClass
  • 注释的专用主键类
  • @PrimaryKeyColumn带注释的属性放入其中
  • User课程中使用全新的主要新课程,并附注@PrimaryKey