我剛開始對Spring數據使用Neo4j,我無法恢復圖形對象並將它們轉換回域對象。我必須說我在這類數據庫中沒有以前的經驗。將密碼查詢結果映射到域對象
這樣,我使用Spring Data存儲庫。對於標準查詢,存儲庫代碼是自動生成的,但我想定義一些自定義方法,所以我創建了我的自定義存儲庫,如解釋here。
例如,我希望能夠從兩個特定節點之間的給定邊緣更新某個屬性值(currentValue屬性)(searchByUserName是我的節點實體中代表用戶的先前定義的索引) 。我使用的是從Neo4j的模板查詢方法在我的自定義庫中執行如下命令:
public class TwitterUserRepositoryImpl implements TwitterUserRepositoryCustom{
@Autowired
private Neo4jOperations neo4jTemplate;
public void updateRelationshipValueByUserName(
String userAUserName, String userBUserName, double value){
HashedMap params = new HashedMap();
params.put("userAUserName", userAUserName);
params.put("userBUserName", userBUserName);
params.put("value", value);
String query = "START x=node:searchByUserName(userName = {userAUserName}), " +
"y=node:searchByUserName(userName = {userBUserName})" +
" MATCH (x)-[r:FOLLOWS]->(y)" +
" SET r.currentValue = {value}" +
" RETURN r";
Result<Map<String, Object>> relationships = neo4jTemplate.query(query, params);
/* let's try to recover the relationship entity and do some more stuff */
}
Cypher支架查詢返回兩個用戶,在其關係式是之間的「邊緣」「跟隨」,模擬一個Twitter用戶網絡。我不知道如何將這個QueryResult對象轉換回我的RelationshipEntity對象。那可能嗎?
這正是我一直在尋找。非常感謝,謝謝! – jarandaf 2013-03-22 05:35:02