我試圖從遷移到SDN 4.2
和SDN 5
OGM 3
春數據的Neo4j 5 OGM 3和Spring引導2.0.0.M4
一切幾乎完美的作品,除了一種情況。
現在爲了節省我必須使用深度= 2,而不是深度= 1就像在SDN 4.2
這很難解釋有那麼我創建在GitHub的一個示範項目再現這個問題的實體 - https://github.com/Artgit/spring-boot-2.0.0.M4-sdn5-ogm3-saving-issue
重現步驟:
如果你想使用自己的Neo4j的情況下,請跳過步驟#1,並開始從第2步閱讀。爲了旋轉起來的Neo4j 3.2.5在泊塢容器(必須安裝泊塢)
執行測試
運行
mvn docker:start -Dfile.encoding=UTF-8
com.decisionwanted.domain.DecisionCharacteristicIT.testUpdateValue()
試驗應失敗,並斷言:
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
正如你可以從下面看到的NG代碼:
rdbmsHorScalingValue = valueDao.update(rdbmsHorScalingValue, newStringValue2, newStringDescription2, user3,
null);
assertEquals(user3, rdbmsHorScalingValue.getUpdateUser());
rdbmsHorScalingValue = valueDao.getById(rdbmsHorScalingValue.getId());
assertEquals(user3, rdbmsHorScalingValue.getUpdateUser()); // Error here !!!!
我與用戶3和ID得到Value
後更新rdbmsHorScalingValue
(valueDao.getById())
我希望這個用戶爲rdbmsHorScalingValue.getUpdateUser()
但不知什麼原因,這是不正確的。
但是,如果我們改變以下方法:com.decisionwanted.domain.dao.decision.characteristic.value.history.HistoryValueDaoImpl.create(Value)
節省深度從1
到2
- 一切都開始正常工作。
現在我不知道問題出在哪裏,也不知道我知道的唯一的東西 - 它在使用SDN 4.2節省深度= 1時工作正常。
請告訴我問題在哪裏(爲什麼它不適用於SDN 5)以及如何解決問題。