SDN 3
からSDN 4
へ、Neo4j 2.3
からNeo4j 3.0.1
への移動中に、OEMとカスタムのCypherクエリの間に不一致が発生しました。OEMとカスタムCypherクエリのNeo4j SDNの不一致
私は、次のサイファーのクエリを持っている:
@Query("MATCH()-[r]-(cg:CriterionGroup) WHERE id(cg) = {criterionGroupId} DELETE cg, r")
void deleteCriterionGroup(@Param("criterionGroupId") Long criterionGroupId);
今、SDN 4と、このクエリはdeleteCriterionGroup
メソッド呼び出しの後に回避策に従わずに動作しません:
session.clear();
あなたが示してもらえ関連するノードの参照を一貫して維持するために、今SDN 4のCriterionGroup
を削除する正しいコードDecision
、Criterion
とUser
ノードに接続されCriterionGroup
を - あなたが見ることができるように
:
これが私のデータのスキーマです。 、整合性を維持関係を削除するには、OGMを使用し
@Override
public void deleteCriterionGroup(Long criterionGroupId) {
CriterionGroup criterionGroup = criterionGroupRepository.findOne(criterionGroupId);
criterionGroup.setAuthor(null);
criterionGroup.setOwner(null);
criterionGroup.setCriteria(null);
criterionGroup = criterionGroupRepository.save(criterionGroup);
criterionGroupRepository.delete(criterionGroup);
}
OGMは、あなたが彼に言わないと、あなたがデータベースで行う変更を認識していません。また、sdn3は組み込みgdbの周りに構築され、sdn4はサーバーデータベースの周りに構築され、データマッピングの実際のコンセプトを持っています。 –
これは私の質問です - OGMでこのノードを削除する正しい方法は何ですか?私は回避策を使用したくありません。 – brunoid
criterionGroupと彼の関係をロードし、POJOのsession.save()との関係を削除します。 –