[英]How Neo4j ogm return result set for a Cypher query?
我是Neo4j OGM的新手,所以我創建了一個簡單的示例來了解neo4j ogm的工作方式。 我使用電影圖。
我的電影課:
@NodeEntity(label="Movie")
public class Movie extends Entity {
@Property(name = "title")
private String title;
@Property(name="released")
private int released;
@Property(name="tagline")
private String tagline;
public Movie(){
}
public Movie(String titre, int year, String tagline){
this.title = titre;
this.released = year;
this.tagline = tagline;
}
@Relationship(type = "ACTED_IN", direction = Relationship.INCOMING)
private Set<Person> actors = new HashSet<Person>();
public String getTitle(){
return title;
}
public int getReleased(){
return released;
}
public void setTitle(String ptitle){
this.title = ptitle;
}
public void setReleased(int pReleased){
this.released = pReleased;
}
public String getTagline(){
return this.tagline;
}
public void setTagline(String pTagline){
this.tagline = pTagline;
}
public Set<Person> getActors(){
return this.actors;
}
public void setActors(Set<Person> actors){
this.actors = actors;
}
@Override
public String toString(){
return "Movie {" + "id=" + getLId() +
",title=" + title + ",released="+ released + ",tagline="+ tagline +"}";
}
而且,我嘗試通過一個簡單的查詢從電影圖獲取數據:
String query = "MATCH (p:Person {name:'Keanu Reeves'})-[r:ACTED_IN]->(m:Movie) RETURN p";
Iterable<Person> lperson = session.query(Person.class, query, Collections.emptyMap());
for (Person person : lperson) {
System.out.println(person.getName());
}
我認為,此查詢的結果集將為:“ Keanu Reeves”,但是Neo4j Ogm給我7次“ Keanu Reeves”:
因此,因為基努(Keanu)參演了7部電影,然后Neo4j ogm返回了7次“基努·里維斯(Keanu Reeves)”。 我想知道我的觀點是否正確嗎?
我可以使用Cypher返回帶有Neo4j-ogm的子圖嗎? 例如:基努(Keanu)和他所有的電影,都在java中:person.getMovies(); 如果可能的話,我該怎么辦?
在此先感謝您,對不起我的英語不好。
請確保您使用的是OGM的最新版本(1.1.4),並且您的圖形僅包含一個表示Keanu Reeves的節點(即您沒有多次加載電影數據庫)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.