2017-02-02 3 views
0

J'ai généré l'API Microservice jhpister qui utilise cassandra comme db. J'ai généré des entités en utilisant yo jhipster: entity entityname. Lors de la génération de champs, j'ai donné ZonedDateTime comme type de données pour le champ CreatedOn. Il a donc créé TimeStamp comme type de données dans la table cassandra et dans l'entité java avec ZonedDateTime. J'ai un code d'insertion personnalisé à l'aide BindStatementComment définir la valeur Java ZonedDateTime sur le champ Cassandra Timestamp

BatchStatement batch = new BatchStatement(); 
batch.add(insertStatement.bind() 
.setTimestamp("createdOn", existingWorkAssignment.getCreatedOn()); 

Mais cela génère erreur de compilation de temps qui dit ne peut pas résoudre méthode becuase la valeur que nous fixons est zoneddatetime mais le type de données interne est cassandra horodatage. Aidez d'abord

Répondre

0

convertissez d'abord la valeur ZonedDateTime en horodatage, puis définissez la valeur.

Essayez de faire comme ça. Exemple:

ZonedDateTime dateTime =ZonedDateTime.from(ZonedDateTime.now()); 
Timestamp timestamp = Timestamp.valueOf(dateTime.toLocalDateTime()); 
System.out.println(timestamp); 

Dans votre cas

BatchStatement batch = new BatchStatement(); 
batch.add(insertStatement.bind() 
    .setTimestamp("createdOn", Timestamp.valueof(existingWorkAssignment.getCreatedOn().toLocalDateTime());