我有一个@QueryResult接口,它本身声明了一个getter方法,该方法返回相同类型的对象列表。我想知道是否有办法将neo4j查询结果转换为实现此域接口的代理对象?
以下是我尝试进行测试的域的界面,但没有用:
@QueryResult
public interface Test
{
@ResultColumn( "id" )
public String getId();
@ResultColumn( "name" )
public String getName();
@ResultColumn( "tests" );
java.util.Collection<Test> getTests();
}
我使用neo4Template#query(String,Map)将下面的查询转换为实现上述接口的代理对象
MATCH (n:Label {id:{id}) WITH n MATCH (n)-[:INCLUDES]->(s) with n, s, COLLECT ({id:s.id, name:s.name}) AS tests RETURN n.name as name, n.id as id, tests
然而,我得到了这个例外: Expexted名为toString的列位于结果集中。 在
org.springframework.data.neo4j.support.conversion.ResultColumnValueExtractor.extractFromAccessibleObject(ResultColumnValueExtractor.java:74)
at org.springframework.data.neo4j.support.conversion.ResultColumnValueExtractor.extractFromMethod(ResultColumnValueExtractor.java:56)
at org.springframework.data.neo4j.support.conversion.QueryResultProxy.invoke(QueryResultProxy.java:54)
at com.sun.proxy.$Proxy173.toString(Unknown Source)
at java.lang.String.valueOf(String.java:2854)
at java.lang.StringBuilder.append(StringBuilder.java:128)
at org.neo4j.helpers.collection.IteratorUtil.single(IteratorUtil.java:338)
at org.neo4j.helpers.collection.IteratorUtil.singleOrNull(IteratorUtil.java:128)
at org.neo4j.helpers.collection.IteratorUtil.singleOrNull(IteratorUtil.java:286)
at org.springframework.data.neo4j.conversion.QueryResultBuilder.singleOrNull(QueryResultBuilder.java:71)
有谁知道使用弹簧数据neo4j是否可以实现?谢谢你的帮助