我正在尝试使用Spring Data编写示例并连接到cassandra(主题http://docs.spring.io/spring-data/cassandra/docs/1.0.2.RELEASE/reference/html/cassandra.core.html)
班级:
public class CassandraApp {
private static final Logger LOG = LoggerFactory.getLogger(CassandraApp.class);
private static Cluster cluster;
private static Session session;
public static void main(String[] args) {
try {
cluster = Cluster.builder().addContactPoints(InetAddress.getLocalHost()).build();
session = cluster.connect("mykeyspace");
CassandraOperations cassandraOps = new CassandraTemplate(session);
cassandraOps.insert(new Person("1234567890", "David", 40));
Select s = QueryBuilder.select().from("person");
s.where(QueryBuilder.eq("id", "1234567890"));
LOG.info(cassandraOps.queryForObject(s, Person.class).getId());
cassandraOps.truncate("person");
} catch (UnknownHostException e) {
e.printStackTrace();
}
}
}
@Table
public class Person {
@PrimaryKey
private String id;
private String name;
private int age;
public Person(String id, String name, int age) {
this.id = id;
this.name = name;
this.age = age;
}
public String getId() {
return this.id;
}
public String getName() {
return name;
}
public int getAge() {
return age;
}
@Override
public String toString() {
return "Person [id=" + id + ", name=" + name + ", age=" + age + "]";
}
}
我得到这个例外:
log4j:WARN找不到记录器(com.datastax.driver.core.Cluster)的附加程序。 log4j:WARN请正确初始化log4j系统。 log4j:WARN有关更多信息,请参见http://logging.apache.org/log4j/1.2/faq.html#noconfig。 线程“主”中的异常java.lang.ClassCastException:java.lang.String无法在sun.reflect 处转换为main.java.example2.CassandraApp.main(CassandraApp.java:40) 处的main.java.example2.Person 。 位于sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) 处的NativeMethodAccessorImpl.invoke0(本地方法), 位于java.lang.reflect.Method.invoke(Method。 Java:498) 在com.intellij.rt.execution.application.AppMain.main(AppMain.java:147)
cassandraOps.queryForObject(s, Person.class)
返回一个String
值,但是我需要获取一个类。
看来,cqlTemplate的任意对象映射存在问题。
这是我已解决的方法。
Person pnObj = cassandraOps.selectOne(s, Person.class);
LOG.info(pnObj.getId());
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句