2014-02-24 55 views
0

我有一個用戶節點類,看起來像這樣:春數據的Neo4j:findByPropertyValue返回null(即使索引後)

@NodeEntity 
public class User { 

    @GraphId 
    Long nodeId; 

    @Indexed(unique = true,indexName="uid") 
    Long uid; 

    String name; 

    @RelatedTo(type="FRIENDS", direction=Direction.BOTH) 
    Set<User> friends; 

    @RelatedToVia(type="FRIENDS", elementClass=IsFriends.class) 
    Set<IsFriends> friendRelationships; 

    @RelatedTo(type="LIKES", direction=Direction.OUTGOING) 
    Set<Article> article; 

    @RelatedToVia(type="LIKES", elementClass=Reco.class) 
    Set<Likes> likeRelationships; 

    //getters and setters 

    .. 
    .. 

} 

在我的控制器類,我已經注射了回購這樣的:

@Inject 
private UserRepository userRepo; 

我試圖用檢索用戶對象以下內容:

User user = userRepo.findByPropertyValue("uid", userId); 

我有2個用戶在我的GR aph,上面的對象檢索適用於一個,但另一個失敗。如果我運行密碼查詢,我會看到兩個節點。

這兩個節點都是使用Spring Data Neo4j創建的。

任何幫助表示讚賞。謝謝..

回答

0

用戶存儲庫需要,也能實現NamedIndexRepository <>,因爲你的索引被命名爲:

public interface UserRepository extends NamedIndexRepository<User> { 

}

,然後搜索包括索引的名字:

User user = userRepo.findByPropertyValue("uid","uid", userId);