我正在尝试使用Datastax Java驱动程序在Cassandra
中插入一些值。
我有case class
表示我要插入的值。
case class User(firstname:String, lastname:String)
insert
的驱动程序的Cassandra
方法看起来像
values(List<String> names, List<Object> values)
表架构是
CREATE TABLE users (
firstname text,
lastname text,
PRIMARY KEY ((firstname, lastname))
将User
转换为List<Object>
答案 0 :(得分:1)
获取案例类prop的Map:带反射的值,分区键和值,转换为java列表。
val usr = User("John", "Doe")
val map = (Map[String, AnyRef]() /: usr.getClass.getDeclaredFields) {
(acc, field) =>
field.setAccessible(true)
acc + (field.getName -> field.get(usr))
}
val keys = map.keys.init.toList
val vals = map.values.init.toList
import collection.JavaConverters._
new SomeClass().values(keys.asJava, vals.asJava)
答案 1 :(得分:1)
让02/04/2018
无反射的一种方法:
java.util.List<Object>