我应该期望 Neo4jOperations#queryForObjects 与@QueryResult POJO 一起工作吗?
Should I expect Neo4jOperations#queryForObjects to work with @QueryResult POJOs?
Neo4jOperations#queryForObjects()
似乎不能很好地与 @QueryResult
POJO 一起使用 - 它总是说结果集是空的。
正在尝试 Neo4jOperations#queryForObjects
- 它说结果为空:
@Test
public void thisDoesNotWork() {
Iterable<ClassNodeIdAndName> result = neo4jOperations.queryForObjects(
ClassNodeIdAndName.class,
"MATCH (c:ClassNode) RETURN ID(c) AS id, c.name AS name",
new HashMap<>());
assertTrue(result.iterator().hasNext());
}
正在尝试 Neo4jOperations#query
- 表示结果不为空:
@Test
public void thisWorksFine() {
Result result = neo4jOperations.query(
"MATCH (c:ClassNode) RETURN ID(c) AS id, c.name AS name",
new HashMap<>());
assertTrue(result.iterator().hasNext());
}
尝试使用 @Query
存储库 - 表示结果不为空:
@Test
public void thisWorksFineAsWell() {
List<ClassNodeIdAndName> classNodeIdsAndNames = classNodeRepository.getAllIdsAndNames();
assertFalse(classNodeIdsAndNames.isEmpty());
}
public interface ClassNodeRepository extends GraphRepository<ClassNode> {
@Query("MATCH (c:ClassNode) RETURN ID(c) AS id, c.name AS name")
List<ClassNodeIdAndName> getAllIdsAndNames();
}
@QueryResult
public class ClassNodeIdAndName {
public Long id;
public String name;
}
Iterable queryForObjects(Class entityType,
entityType - The Class denoting the type of entity to return
但我很困惑是应该查看 实体类型 还是 对象 。如果它不应该处理 @QueryResult
,我希望它抛出而不是不返回任何结果。
我正在使用 spring-data-neo4j 4.1.3.RELEASE
@QueryResult
是一个 Spring Data Neo4j 概念,仅适用于 Spring Repository
s.
Neo4jOperations
是 Neo4j OGM 的 Session
class 的薄包装,因此不处理返回查询结果对象的概念。
另见:
Neo4jOperations#queryForObjects()
似乎不能很好地与 @QueryResult
POJO 一起使用 - 它总是说结果集是空的。
正在尝试 Neo4jOperations#queryForObjects
- 它说结果为空:
@Test
public void thisDoesNotWork() {
Iterable<ClassNodeIdAndName> result = neo4jOperations.queryForObjects(
ClassNodeIdAndName.class,
"MATCH (c:ClassNode) RETURN ID(c) AS id, c.name AS name",
new HashMap<>());
assertTrue(result.iterator().hasNext());
}
正在尝试 Neo4jOperations#query
- 表示结果不为空:
@Test
public void thisWorksFine() {
Result result = neo4jOperations.query(
"MATCH (c:ClassNode) RETURN ID(c) AS id, c.name AS name",
new HashMap<>());
assertTrue(result.iterator().hasNext());
}
尝试使用 @Query
存储库 - 表示结果不为空:
@Test
public void thisWorksFineAsWell() {
List<ClassNodeIdAndName> classNodeIdsAndNames = classNodeRepository.getAllIdsAndNames();
assertFalse(classNodeIdsAndNames.isEmpty());
}
public interface ClassNodeRepository extends GraphRepository<ClassNode> {
@Query("MATCH (c:ClassNode) RETURN ID(c) AS id, c.name AS name")
List<ClassNodeIdAndName> getAllIdsAndNames();
}
@QueryResult
public class ClassNodeIdAndName {
public Long id;
public String name;
}
Iterable queryForObjects(Class entityType,
entityType - The Class denoting the type of entity to return
但我很困惑是应该查看 实体类型 还是 对象 。如果它不应该处理 @QueryResult
,我希望它抛出而不是不返回任何结果。
我正在使用 spring-data-neo4j 4.1.3.RELEASE
@QueryResult
是一个 Spring Data Neo4j 概念,仅适用于 Spring Repository
s.
Neo4jOperations
是 Neo4j OGM 的 Session
class 的薄包装,因此不处理返回查询结果对象的概念。
另见: