2013-03-21 83 views
2

我剛開始對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對象。那可能嗎?

回答

相關問題