1
我正在爲春季的Cassandra建立一個DAO。在Cassandra的春季數據中使用複雜的數據結構
現在我有一個關於在一個對象中多次使用複合類的問題。
我有這個類設置:
@Table(value = "settings")
public class Setting {
@PrimaryKey
private User owner;
@Column("key")
private String key;
@Column("value")
private String value;
@Column("updated_by")
private User updatedBy;
}
和類用戶:
@PrimaryKeyClass
public class User implements Serializable{
@PrimaryKeyColumn(name = "userId", ordinal = 0, type = PrimaryKeyType.PARTITIONED)
private String id;
@PrimaryKeyColumn(name = "userIdType", ordinal = 1, type = PrimaryKeyType.PARTITIONED)
private String idType;
}
所以我使用了類用戶的兩倍。一次作爲主要關鍵「所有者」,一次作爲「updatedBy」。
在CassandraOperations類中使用它時,它可以很好地作爲主鍵,但不能再作爲另一列。
它抱怨已經在使用的列名稱userId
。說得通。 那麼我該如何做這項工作?
我可以使用UserDefined Types?
CREATE TYPE test_keyspace.user (
id text,
id_type text
);
但是我怎樣才能做到這一點從Java註釋?
或者,我該如何重複使用同一個類呢? 考慮到Cassandra中相對簡單的數據結構,我可以將User類展平爲一個單獨的字符串,如idType.id
。
感謝您的幫助!
雖然也需要TypeCodec。 [此處爲示例](http://docs.datastax.com/en/developer/java-driver/3.1/manual/custom_codecs/) – Denno