J'ai table avec cassandra une colonne de type date comme suit:Comment insérer les valeurs java.util.Date dans la colonne Type de date Cassandra à l'aide de Spring Data Cassandra?
create table people
(
id int primary key,
name text,
email text,
dob date
);
J'utilise SpringBoot 1.5.2 + printemps données Cassandra Starter.
@Table("people")
public class Person {
@PrimaryKey
Integer id;
private String name;
private String email;
private java.util.Date dob;
//setters and getters
}
public interface PersonRepository extends CrudRepository<Person, Integer>{
}
Je l'insertion d'une nouvelle personne comme suit:
personRepository.save(new Person(1, "Siva","[email protected]", new java.util.Date()));
Il jette l'erreur suivante:
Caused by: com.datastax.driver.core.exceptions.InvalidQueryException: Expected 4 byte long for date (8)
at com.datastax.driver.core.Responses$Error.asException(Responses.java:136) ~[cassandra-driver-core-3.1.4.jar:na]
at com.datastax.driver.core.DefaultResultSetFuture.onSet(DefaultResultSetFuture.java:179) ~[cassandra-driver-core-3.1.4.jar:na]
at com.datastax.driver.core.RequestHandler.setFinalResult(RequestHandler.java:177) ~[cassandra-driver-core-3.1.4.jar:na]
at com.datastax.driver.core.RequestHandler.access$2500(RequestHandler.java:46) ~[cassandra-driver-core-3.1.4.jar:na]
Mais si je fais DOB type de colonne à horodatage puis ça fonctionne bien. Est-il possible d'avoir la colonne de type date et d'utiliser les propriétés de type java.util.Date? P.: Même si j'utilise java.sql.Date, j'obtiens la même erreur.
Avez-vous essayé d'ajouter une annotation '@Temporal (TemporalType.TIMESTAMP) '? – Andremoniy
Je n'utilise pas JPA. Existe-t-il une telle annotation pour Cassandra? –
Vraiment? Que sont les annotations 'Table' et' PrimaryKey'? – Andremoniy