0
CodecRegistry myCodecRegistry = new CodecRegistry();
myCodecRegistry.register(new EnumOrdinalCodec<MyEnum>(MyEnum.class));
cluster = Cluster.builder().addContactPoint(cassandraHosts).withPort(cassandraPort).withCodecRegistry(myCodecRegistry).build();
내가 등록하는 방법입니다 카산드라에 연결할 수 있습니다. 여기에 모델 클래스
public class MyModel
{
@PartitionKey
@Column(name="id")
private String id;
@ClusteringColumn
@Column(name="name")
private String name = "";
@Column(name="enum")
private MyEnum enum;
public MyModel(String i, String n)
{
id=i;
name=n
enum=MyEnum.Aa;
}
}
을의 조각이며 여기에 내가
CREATE TABLE IF NOT EXISTS
tab
(
name varchar ,
id varchar,
enum varchar,
PRIMARY KEY ((id), name));
마지막으로, 난 내 매핑 코드
manager = new MappingManager(session);
mapper = manager.mapper(MyModel.class);
accessor = manager.createAccessor(MyAccessor.class);
가 여기에있다 CQL
를 사용하여 테이블을 생성하는 방법이다MyAccessor
@Accessor
public interface MyAccessor{
@Query("SELECT * FROM case WHERE id=? and name=? ALLOW FILTERING;")
MyModel readByIdAndName(String id,String name);
}
그래서 난 내가 뭘 잘못
com.datastax.driver.core.exceptions.CodecNotFoundException: Codec not found for requested operation: [varchar <-> my.pack.MyEnum]
at com.datastax.driver.core.exceptions.CodecNotFoundException.copy(CodecNotFoundException.java:56)
at com.datastax.driver.core.exceptions.CodecNotFoundException.copy(CodecNotFoundException.java:25)
at com.datastax.driver.mapping.DriverThrowables.propagateCause(DriverThrowables.java:41)
at com.datastax.driver.mapping.Mapper.save(Mapper.java:289)
을 얻을
MyModel m = new MyModel("asdasf","qw");
mapper.save(m);
실행하려고 할 때?
Javadoc에 감사합니다! 위선적 인 말투는 내가 그것을 놓쳤다 고 생각한다 :) – AbtPst