use of org.neo4j.ogm.model.RowModel in project neo4j-ogm by neo4j.
the class ExecuteQueriesDelegate method countEntitiesOfType.
public long countEntitiesOfType(Class<?> entity) {
ClassInfo classInfo = session.metaData().classInfo(entity.getName());
if (classInfo == null) {
return 0;
}
CypherQuery countStatement;
if (classInfo.isRelationshipEntity()) {
ClassInfo startNodeInfo = null;
ClassInfo endNodeInfo = null;
for (FieldInfo fieldInfo : classInfo.fieldsInfo().fields()) {
if (fieldInfo.hasAnnotation(StartNode.class)) {
startNodeInfo = session.metaData().classInfo(DescriptorMappings.getType(fieldInfo.getTypeDescriptor()).getName());
} else if (fieldInfo.hasAnnotation(EndNode.class)) {
endNodeInfo = session.metaData().classInfo(DescriptorMappings.getType(fieldInfo.getTypeDescriptor()).getName());
}
if (endNodeInfo != null && startNodeInfo != null) {
break;
}
}
String start = startNodeInfo.neo4jName();
String end = endNodeInfo.neo4jName();
String type = classInfo.neo4jName();
countStatement = new CountStatements().countEdges(start, type, end);
} else {
Collection<String> labels = classInfo.staticLabels();
if (labels.isEmpty()) {
return 0;
}
countStatement = new CountStatements().countNodes(labels);
}
return session.doInTransaction(() -> {
try (Response<RowModel> response = session.requestHandler().execute((RowModelRequest) countStatement)) {
RowModel queryResult = response.next();
return queryResult == null ? 0 : ((Number) queryResult.getValues()[0]).longValue();
}
}, Transaction.Type.READ_ONLY);
}
use of org.neo4j.ogm.model.RowModel in project neo4j-ogm by neo4j.
the class JsonRowResponseTest method shouldParseDataInCustomQueryRowResponseCorrectly.
@Test
public void shouldParseDataInCustomQueryRowResponseCorrectly() throws IOException {
when(entity.getContent()).thenReturn(customQueryRowResults());
try (Response<RowModel> rsp = new RowModelResponse(response)) {
RowModel rowModel = rsp.next();
assertThat(rowModel).isNotNull();
Object[] rows = rowModel.getValues();
assertThat(rows.length).isEqualTo(3);
Map obj1 = (Map) rows[0];
assertThat(obj1.get("name")).isEqualTo("Betty");
assertThat(((Map) rows[1])).isEmpty();
assertThat((String) rows[2]).isEqualTo("Peter");
}
}
use of org.neo4j.ogm.model.RowModel in project neo4j-ogm by neo4j.
the class AutoIndexManager method executeStatements.
private void executeStatements(List<Statement> statements) {
DefaultRequest request = new DefaultRequest();
request.setStatements(statements);
session.doInTransaction(() -> {
try (Response<RowModel> response = session.requestHandler().execute(request)) {
// Success
}
}, READ_WRITE);
}
Aggregations