private DeleteStatements getDeleteStatementsBasedOnType(Class type) { if (session.metaData().isRelationshipEntity(type.getName())) { return new RelationshipDeleteStatements(); } return new NodeDeleteStatements(); }
/** * @see DATAGRAPH-586 */ @Test public void deleteAllRels() throws Exception { List<Long> ids = Arrays.asList(new Long[] { 123L, 234L, 345L }); cypherQuery = new RelationshipDeleteStatements().delete(ids); assertThat(cypherQuery.getStatement()).isEqualTo("MATCH (n)-[r0]->() WHERE ID(r0) IN { ids } DELETE r0"); assertThat(mapper.writeValueAsString(cypherQuery.getParameters())).isEqualTo("{\"ids\":[123,234,345]}"); }
/** * @see DATAGRAPH-586 */ @Test public void deleteRel() throws Exception { cypherQuery = new RelationshipDeleteStatements().delete(123L); assertThat(cypherQuery.getStatement()).isEqualTo("MATCH (n)-[r0]->() WHERE ID(r0) = { id } DELETE r0"); assertThat(mapper.writeValueAsString(cypherQuery.getParameters())).isEqualTo("{\"id\":123}"); }
/** * @see DATAGRAPH-586 */ @Test public void deleteAllRelsByType() throws Exception { cypherQuery = new RelationshipDeleteStatements().delete("REL"); assertThat(cypherQuery.getStatement()).isEqualTo("MATCH (n)-[r0:`REL`]-() DELETE r0"); assertThat(mapper.writeValueAsString(cypherQuery.getParameters())).isEqualTo("{}"); }
public <T> Object delete(Class<T> clazz, Iterable<Filter> filters, boolean listResults) { ClassInfo classInfo = session.metaData().classInfo(clazz.getSimpleName()); if (classInfo != null) { resolvePropertyAnnotations(clazz, filters); CypherQuery query; if (classInfo.isRelationshipEntity()) { query = new RelationshipDeleteStatements().deleteAndList(classInfo.neo4jName(), filters); } else { query = new NodeDeleteStatements().deleteAndList(classInfo.neo4jName(), filters); } if (listResults) { return list(query, classInfo.isRelationshipEntity()); } return count(query, classInfo.isRelationshipEntity()); } throw new RuntimeException(clazz.getName() + " is not a persistable class"); }