Ich habe die folgende Einheit:SDN5/OGM3 vergleichen java.util.Date bei Cypher Abfrage
@NodeEntity
public class Action {
...
@Index(unique = false)
private Date createDate;
...
}
ich die letzten Action
erhalten muß, die während eines früheren Zeitraums erstellt wurden.
Um dies ich die folgenden Repository-Methode implementiert haben zu tun:
@Repository
public interface ActionRepository {
@Query("MATCH (a:Action)-[:CREATED_BY]->(u:User) WHERE a.entityType = {entityType} AND a.createDate <= {minCreateDate} AND u.id = {userId} RETURN a ORDER BY a.createDate DESC LIMIT 1")
Action findLastByEntityTypeForUser(@Param("entityType") String entityType, @Param("minCreateDate") Date minCreateDate, @Param("userId") Long userId);
}
ich den folgenden Code verwenden diese Methode zu testen:
decisionDao.create("Decision2", "Decision2 description", null, false, null, user1);
Date minStartDate = DateUtils.addMilliseconds(new Date(), -1000 * 60);
Action user1LastAction = actionRepository.findLastByEntityTypeForUser(Decision.class.getSimpleName(), minStartDate, user1.getId());
assertNotNull(user1LastAction); // test fails here because of NPE
aber ohne diesen Teil der Cypher Abfrage AND a.createDate <= {minCreateDate}
Ich kann Action
Instanz finden.
Auf Neo4j Ebene meine Daten wie folgt aussieht:
{
"updateDate":"2017-10-08T12:21:39.15
3Z",
"entityName":"General",
"en
tityType":"CriterionGroup",
"entityId":1,
"id":1,
"type":"CREATE",
"createDate":"2017-10-08T12:21:39.153Z"
}
Was mache ich falsch und wie man richtig die Termine mit SDN/OGM und Cypher vergleichen?
Gibt es auch eine Möglichkeit, SDN/OGM mitzuteilen, java.util.Date
Objekt als long
Millisekunden und als String
zu speichern?
Vielen Dank für Ihre Antwort. Gibt es eine Möglichkeit, SDN/OGM mitzuteilen, dass das Objekt 'java.util.Date' als' lange' Millisekunden gespeichert werden soll? – alexanoid
Nicht zu meinem Wissen –
Ja kannst du: '' '@Index (einzigartig = falsch) @DateLong public Date createDate;' '' – nmervaillie