Ich glaube, das Problem ist, dass Sie ein java.util.Date
Objekt in einem cql bigint
zu speichern versuchen. Der Typ, der in dem Java-Treiber bigint
zugeordnet ist, ist ein long
(siehe 'CQL to Java type mapping' Abschnitt der Dokumentation).
Angenommen, Sie möchten die Epoche Millisekunden in dieser Spalte speichern, haben Sie ein paar Optionen.
- Ändern der Spaltentyp
timestamp
welche java.util.Date
MAPS (und wird/Zugriff über setTiemstamp
/getTimstamp
).
- Verwenden Sie in Verbindung mit
Date.getTime()
, um die Date
in eine long
konvertieren, die Epochen Millisekunden darstellt.
- Erstellen und registrieren ein custom codec die
java.util.Date
zu bigint
abbildet, dh:
import com.datastax.driver.core.*;
import java.util.Date;
public class CodecTest {
static class DateToBigintCodec extends MappingCodec<Date, Long> {
DateToBigintCodec() {
// creates a mapping from bigint <-> Date.
super(TypeCodec.bigint(), Date.class);
}
@Override
protected Date deserialize(Long value) {
return new Date(value);
}
@Override
protected Long serialize(Date value) {
return value.getTime();
}
}
public static void main(String args[]) {
TypeCodec<Date> codec = new DateToBigintCodec();
Cluster cluster = Cluster.builder().addContactPoint("127.0.0.1").build();
try {
// register custom codec
cluster.getConfiguration().getCodecRegistry().register(codec);
Date date = new Date();
Session session = cluster.connect();
// insert Date value into column v, which is a bigint.
// schema:
// CREATE TABLE simple.tbl (k int PRIMARY KEY, v bigint)
PreparedStatement prepared = session.prepare("insert into simple.tbl (k, v) values (?, ?)");
BoundStatement bound = prepared.bind();
bound.setInt("k", 0);
bound.setTimestamp("v", date);
session.execute(bound);
// Retrieve column v as a Date.
Row row = session.execute("select v from simple.tbl").one();
System.out.println(row.getTimestamp("v"));
} finally {
cluster.close();
}
}
}
so meinen Sie lange sagen Art können –
Ja, hier in Bigint Spalte eingefügt werden soll, desto mehr Details http: // docs Englisch: www.datastax.com/en/developer/java - driver/3.1/manual/ –