Je suis en train de migrer de SDN 4.2
à SDN 5
et OGM 3
printemps données Neo4j 5 3 et Spring OGM Boot 2.0.0.M4
Tout fonctionne presque parfaitement, sauf un cas.
En ce moment, afin de sauver l'entité que je dois utiliser la profondeur = 2 au lieu de profondeur = 1 comme à NRS 4.2
Il est difficile d'expliquer, donc je l'ai créé un projet de démonstration à GitHub qui reproduit cette question - https://github.com/Artgit/spring-boot-2.0.0.M4-sdn5-ogm3-saving-issue
Procédure pour reproduire:
Si vous voulez utiliser votre propre instance Neo4j s'il vous plaît sauter l'étape 1 et commencer la lecture de l'étape 2.
Run
mvn docker:start -Dfile.encoding=UTF-8
pour filer jusqu'à Neo4j 3.2.5 dans le récipient Docker (Docker doit être installé)exécuter le test
com.decisionwanted.domain.DecisionCharacteristicIT.testUpdateValue()
Le test devrait échouer avec l'affirmation:
java.lang.AssertionError: expected:<BaseEntity [id=3, class=class com.decisionwanted.domain.model.user.User, createDate=Wed Oct 04 21:54:17 EEST 2017, updateDate=Wed Oct 04 21:54:17 EEST 2017]> but was:<BaseEntity [id=2, class=class com.decisionwanted.domain.model.user.User, createDate=Wed
Comme vous pouvez le voir à la suite Code ng:
rdbmsHorScalingValue = valueDao.update(rdbmsHorScalingValue, newStringValue2, newStringDescription2, user3,
null);
assertEquals(user3, rdbmsHorScalingValue.getUpdateUser());
rdbmsHorScalingValue = valueDao.getById(rdbmsHorScalingValue.getId());
assertEquals(user3, rdbmsHorScalingValue.getUpdateUser()); // Error here !!!!
J'ai mis à jour rdbmsHorScalingValue
avec user3 et après avoir obtenu Value
par id (valueDao.getById())
j'attends cet utilisateur comme rdbmsHorScalingValue.getUpdateUser()
mais pour une raison inconnue, il est pas vrai.
Mais si nous changeons à la méthode suivante: com.decisionwanted.domain.dao.decision.characteristic.value.history.HistoryValueDaoImpl.create(Value)
économiser la profondeur de 1
à 2
- tout commence à fonctionner correctement.
À l'heure actuelle, je ne sais pas où est le problème et la seule chose que je sais - il fonctionne très bien avec économie de profondeur = 1 avec SDN 4.2.
Se il vous plaît me dire où est le problème (pourquoi il ne fonctionne pas avec SDN 5) et comment faire pour le résoudre.