spring-data-neo4j - 使用spring数据neo4j节点存储库获取关系属性
问题描述
如果我们有一个这样的公司节点,它使用 OWNS 关系链接到另一个节点(位置)。
@NodeEntity ("Company")
public class Company {
@Id
@Property
private String companyId;
@Property
private String partyId;
@Relationship (type = "OWNS", direction = Relationship . OUTGOING )
private Set<Location> ownedLocations;
}
拥有关系
@RelationshipEntity (type = "OWNS")
public class Owns {
@Property
private String ownsProperty;
@StartNode
private Company company;
@EndNode
private Location location;
}
这是存储库
@Repository
public interface CompanyRepository extends Neo4jRepository<Company, String> {
@Query ("match (c:Company)-[x:OWNS]-(y) where c.partyId = $0 return c,x,y")
Stream<Company> getCompaniesWithRelationsByPartyId(final String partyId);
}
因此,当我运行此查询时,我只得到 Company 和 Location 实体,但没有 OWNS ownsProperty。如何使用上述存储库获取关系属性?
注意:我不想使用 @QueryResult
在此处输入代码
解决方案
您必须像这样将Owns
关系实体定义为关系的类型Company
@Relationship (type = "OWNS", direction = Relationship . OUTGOING )
private Set<Owns> ownedLocations;
推荐阅读
- asp.net - 如何使用 Bootstrap 将网格系统应用于 contentplaceholder?
- javascript - Angular 5 侧边导航
- java - 正则表达式查找 $$ 符号之间的单词
- opencl - 任意质数工作项的工作维度
- .net - 将 ATL COM 项目转换为 .NET
- c++ - 定义多次继承的虚方法
- python - 如何检查两个封闭标签 XML 之间的文本是否存在于 minidom-
- javascript - javascript .map(x => x && y); 为什么结果 y
- ofbiz - JAR - 从 derby 到 mysql
- python - Scrapy 选择器上的 extract_first() 和 extract() 方法没有返回相同的值