2015-08-28 41 views
4

我宣佈使用SDN(春季數據的Neo4j)在Java中暗號查詢的字符節點屬性

@NodeEntity 
public class Psite { 

    @GraphId 
    Long id; 

    @Indexed(unique = true) 
    public String identifier; 
    public char amino; 

一個字符屬性但是我不能執行關於對Neo4j的服務器的瀏覽器這個屬性的查詢。

以上所有三種情況都會給我0個結果。

MATCH (n:`Psite`) WHERE n.amino = "T" RETURN n LIMIT 25 

MATCH (n:`Psite` {amino : 'T'}) RETURN n LIMIT 25 

MATCH (n:`Psite` {amino : "T"}) RETURN n LIMIT 25 

有人可以幫我請

+1

如果你匹配(p:Psite {identifier:「foo」})返回p.amino',它是如何返回的? –

+4

你可以嘗試與ascii代碼進行比較嗎? 'WHERE n.amino = 84'只是好奇 –

+1

[文檔](http://neo4j.com/docs/milestone/property-values-detailed.html)說一個字符被存儲爲一個16位無符號整型('char |表示Unicode字符的16位無符號整數| u0000到uffff(0到65535)'),這是Java字符。我從來沒有存儲過SDN中的字符,但是像邁克爾說過的,我會嘗試將它作爲整數進行比較,即84.這是否有效? – jjaderberg

回答

0

按照上述評論的最佳解決方案迄今:

MATCH (n:`Psite`) WHERE n.amino = 84 RETURN n LIMIT 25 

,而不是

MATCH (n:`Psite`) WHERE n.amino = "T" RETURN n LIMIT 25 

即取代 「T」,其int ASCII值。