Hi,

I've been struggling with integrating all those different kinds of queries into 
a nice API for the
Neo4jTemplate

I want to avoid a proliferation of query methods like in JdbcTemplate, so my 
current approach is
a builder pattern which looks like.

QueryResult<Map<String,Object>> query(String statement);

Person p = query(statement).to(Person.class).single()

Iterable<Long> orderSums = query(statement).to(Long.class, new 
ResultConverter<Map<String,Object>>,<Long>>() {...});

Iterable<Map<String,Object>> results = query(statement);

query(statement).handle(new Handler<R>() { public void handle(R value) {}});

same goes for index queries which just start with 

QueryResult<PropertyContainer> lookup(String index, String key, Object value);

lookup(index,key,value) or 

Iterable<Group> groups = lookup("Group","name:Neo*").to(Group.class);

Path nodePath = lookup("Movie","name","Matrix").to(Path.class).single();

and for traversals: 

QueryResult<Path> traverse(Node start, TraversalDescription desc)

Iterable<Node> endNodes = traverse(Node start, TraversalDesc).to(Node.class);


What is your opinion about that?

Just looking for input.

Cheers

Michael
_______________________________________________
Neo4j mailing list
[email protected]
https://lists.neo4j.org/mailman/listinfo/user

Reply via email to