### Question:
GremlinQueryEngine implements QueryEngine<Object> { @Override public QueryResult<Object> query(String statement, Map<String, Object> params) { try { Iterable<Object> result = gremlinExecutor.query(statement, params); return new QueryResultBuilder<Object>(result,resultConverter); } catch (Exception e) { throw new InvalidDataAccessResourceUsageException("Error executing statement " + statement, e); } } GremlinQueryEngine(GraphDatabaseService graphDatabaseService);  GremlinQueryEngine(GraphDatabaseService graphDatabaseService, ResultConverter resultConverter); @Override QueryResult<Object> query(String statement, Map<String, Object> params);  }### Answer:
@Test @Transactional public void testQueryList() throws Exception { final String queryString = "t = new Table(); [g.v(michael),g.v(david)].each{ n -> n.as('person.name').as('person.age').table(t,['person.name','person.age']){ it.age }{ it.name } >> -1}; t;" ; final Collection<Object> result = IteratorUtil.asCollection(queryEngine.query(queryString, MapUtil.map("michael", idFor(michael), "david", idFor(testTeam.david)))); assertEquals(asList(testTeam.simpleRowFor(michael, "person"), testTeam.simpleRowFor(testTeam.david, "person")), result); }