我試圖建立在https://neo4j.com/developer/example-project/Neo4j的電影例如返回畸形的JSON
鏈接發現代碼中的春數據的Neo4j 4部 Neo4j的電影的例子是在https://github.com/neo4j-examples/movies-java-spring-data-neo4j-4
我把一切都運行起來本地。三個組件中的兩個正在工作,電影列表和背景圖。不工作的是在右側顯示個人電影。
此信息被填充開始在下面的代碼
的index.html(開始於線82):
<script type="text/javascript">
$(function() {
function showMovie(title) {
$.get("/movies/search/findByTitle?title=" + encodeURIComponent(title), // todo fix paramter in SDN
function (data) {
if (!data) return; // || !data["_embedded"].movies) return;
var movie = data; // ["_embedded"].movies[0];
$("#title").text(movie.title);
...
});
}, "json");
return false;
}
...
</javascript>
功能,function (data)
不被調用。
要http://localhost:8080/movies/search/findByTitle?title=The%20Matrix%20Reloaded
被返回以下畸形的JSON:
{
"title" : "The Matrix Reloaded",
"released" : 2003,
"tagline" : "Free your mind",
"roles" : [ {
"roles" : [ "Morpheus" ],
"person" : {
"name" : "Laurence Fishburne",
"born" : 1961
},
"movie" : { : 9
}
}, {
"roles" : [ "Agent Smith" ],
"person" : {
"name" : "Hugo Weaving",
"born" : 1960
},
"movie" : { : 9
}
}, {
"roles" : [ "Trinity" ],
"person" : {
"name" : "Carrie-Anne Moss",
"born" : 1967
},
"movie" : { : 9
}
}, {
"roles" : [ "Neo" ],
"person" : {
"name" : "Keanu Reeves",
"born" : 1964
},
"movie" : { : 9
}
} ],
"_links" : {
"self" : {
"href" : "http://localhost:8080/movies/9"
},
"movie" : {
"href" : "http://localhost:8080/movies/9"
}
}
}
的ID是不正確填充。我試圖運行這個例子開始學習spring-boot和neo4j,我不確定代碼爲什麼沒有返回正確的數據結構?
沒有爲Neo4j的查詢日誌條目:
MATCH (n:`Movie`) WHERE n.`title` = { `title_0` } WITH n MATCH p=(n)-[*0..1]-(m) RETURN p, ID(n) with params {title_0=The Matrix Reloaded}
我跑,在Neo4j的控制檯,看着輸出的文本:
╒══════════════════════════════╤═══════╕
│"p" │"ID(n)"│
╞══════════════════════════════╪═══════╡
│[] │"9" │
├──────────────────────────────┼───────┤
│[{"tagline":"Free your mind","│"9" │
│title":"The Matrix Reloaded","│ │
│released":"2003"},{"roles":["A│ │
│gent Smith"]},{"born":"1960","│ │
│name":"Hugo Weaving"}] │ │
├──────────────────────────────┼───────┤
│[{"tagline":"Free your mind","│"9" │
│title":"The Matrix Reloaded","│ │
│released":"2003"},{"roles":["M│ │
│orpheus"]},{"born":"1961","nam│ │
│e":"Laurence Fishburne"}] │ │
├──────────────────────────────┼───────┤
│[{"tagline":"Free your mind","│"9" │
│title":"The Matrix Reloaded","│ │
│released":"2003"},{"roles":["T│ │
│rinity"]},{"born":"1967","name│ │
│":"Carrie-Anne Moss"}] │ │
├──────────────────────────────┼───────┤
│[{"tagline":"Free your mind","│"9" │
│title":"The Matrix Reloaded","│ │
│released":"2003"},{"roles":["N│ │
│eo"]},{"born":"1964","name":"K│ │
│eanu Reeves"}] │ │
└──────────────────────────────┴───────┘
它看起來像問題是與此額外的ID(n)列。我不知道它爲什麼被添加,或者如何讓它不被添加。唯一的代碼,我可以看到這將產生暗號代碼爲MovieRepository.java
Movie findByTitle(@Param("title") String title);
這是一個版本的問題,還是其他什麼東西?我怎樣才能得到它不返回ID(n)列,或返回一個正確的ID:9結構?
我正在使用neo4j 3.1.0 – KitzyKitt
你是否改變了實體中的任何東西? –
@MichaelHunger - 我沒有。我試圖讓它運行起來,看看它們是如何一起工作的。 – KitzyKitt