如何使用Spring数据Neo4j RX返回多个字段?
我使用的是弹簧数据Neo4j RX。我有这样一个问题:如何使用Spring数据Neo4j RX返回多个字段?,neo4j,spring-data-neo4j,Neo4j,Spring Data Neo4j,我使用的是弹簧数据Neo4j RX。我有这样一个问题: @Query("MATCH (a:Repo)-[:REPO_DEPEND_ON]->(b:Repo) WHERE a.name= $name RETURN a.name, b.name") String[] getSingleRepoDependencyTo(String name); 我知道这里的返回类型是错误的,因为它不能是字符串数组。但是,如何正确地得到包含两个字段的结果呢 我在网上搜索了很长时间,但找不到
@Query("MATCH (a:Repo)-[:REPO_DEPEND_ON]->(b:Repo) WHERE a.name= $name RETURN a.name, b.name")
String[] getSingleRepoDependencyTo(String name);
我知道这里的返回类型是错误的,因为它不能是字符串数组。但是,如何正确地得到包含两个字段的结果呢
我在网上搜索了很长时间,但找不到答案。此RX版本尚不支持“@QueryResult”批注
感谢您的帮助。假设您有一个映射的
@Node
Repo
,其关系如下
@Node
public class Repo {
// other things
String name;
@Relationship("REPO_DEPEND_ON") Repo repo;
}
在…中定义此方法扩展了Neo4jRepository
,
你可以用
重要的是要记住,返回的值应该是节点和关系,以使其以这种方式工作
您还可以删除自定义查询并执行以下操作:
repodbyname(字符串名)
如果实体本身不需要在此存储库中使用findByName
。请查看此处:
它似乎列出了你想要的东西。从这些文件中:
interface NamesOnly {
String getFirstName();
String getLastName();
}
interface PersonRepository extends Neo4jRepository<Person, Long> {
List<NamesOnly> findByFirstName(String firstName);
}
仅接口名称{
字符串getFirstName();
字符串getLastName();
}
接口PersonRepository扩展了Neo4jRepository{
列出findByFirstName(字符串名);
}
还有一些其他变体。您可以在预期模型上使用annotation@QueryResult。例如,你可以这样做 DTO: Neo4J存储:
public interface DomainObjectRepository extends Neo4jRepository<DomainObject, Long> {
@Query("MATCH(n:SomeTable) RETURN someInt, sobj, sdouble, anObj") //Return a few columns
Optional<SomeDto> getSomeDto();
}
公共接口DomainObjectRepository扩展了Neo4jRepository{
@Query(“MATCH(n:SomeTable)RETURN someInt、sobj、sdouble、anObj”)//返回一些列
可选的getSomeDto();
}
嘿。我知道已经5年了,很多事情都改变了,但是经过一些挖掘,只有你的问题与我的问题有关。你找到合适的解决方案了吗?
import org.springframework.data.neo4j.annotation.QueryResult;
@QueryResult
public class SomeDto {
private int someInt;
private SomeObject sobj;
private double sdouble;
private AnotherObject anObj;
//getters setters
}
public interface DomainObjectRepository extends Neo4jRepository<DomainObject, Long> {
@Query("MATCH(n:SomeTable) RETURN someInt, sobj, sdouble, anObj") //Return a few columns
Optional<SomeDto> getSomeDto();
}