私はSDN 5
へSDN 4.2
から移行しようとしているとOGM 3
春データのNeo4j 5 OGM 3と春ブーツ2.0.0.M4
すべてがほぼ1の場合を除いて完璧に動作します。
今私は、私はこの問題を再現するのGitHubでのデモプロジェクトを作成しているので、それが説明するのは難しい
SDN 4.2でのように深さ= 2の代わりに、深さ= 1を使用する必要が実体を節約するために - 再現する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 !!!!
私がUSER3でrdbmsHorScalingValue
を更新したとidによってValue
(valueDao.getById())
を取得した後、私はrdbmsHorScalingValue.getUpdateUser()
としてこのユーザーを期待するが、いくつかの未知の理由で、それは真実ではありません。
ただし、次の方法で変更した場合:com.decisionwanted.domain.dao.decision.characteristic.value.history.HistoryValueDaoImpl.create(Value)
1
から2
までの保存深度 - すべてが正常に機能し始めます。
今は私が知っている唯一の問題はどこにあるのかわかりません。SDN 4.2で深度= 1を保存しても問題ありません。
問題がどこにあるのか(なぜそれがSDN 5で動作しないのか)と解決方法を教えてください。あなたが方法(com.decisionwanted.domain.dao.decision.characteristic.value.ValueDaoImpl#update
)
あなたは(トランザクションにバインドされている)、現在のセッションで追跡されていない関係(UPDATED_BY)を、変更されているを更新して