봄에 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 유형을 사용할 수 있습니까?
CREATE TYPE test_keyspace.user (
id text,
id_type text
);
하지만 Java Annotations에서 어떻게 할 수 있습니까?
그렇지 않으면 동일한 클래스를 어떻게 재사용 할 수 있습니까? Cassandra의 비교적 간단한 데이터 구조를 고려해 볼 때 User 클래스를 idType.id
같은 단일 문자열로 병합해도 좋습니다.
도움 주셔서 감사합니다.
또한 TypeCodec이 필요합니다. [여기 예제] (http://docs.datastax.com/en/developer/java-driver/3.1/manual/custom_codecs/) – Denno