Запрос шифрования для свойства узла Char

Я объявил с помощью SDN (весенние данные neo4j) свойство char в 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

Может кто-нибудь помочь мне, пожалуйста


person pv1    schedule 28.08.2015    source источник
comment
как он возвращается, если вы делаете match (p:Psite {identifier:"foo"}) return p.amino?   -  person Michael Hunger    schedule 28.08.2015
comment
Можете попробовать сравнить с ascii-кодом? WHERE n.amino = 84 просто интересно   -  person Michael Hunger    schedule 28.08.2015
comment
документы говорят, что char хранится как 16-битное целое число без знака (char | 16-bit unsigned integers representing Unicode characters | u0000 to uffff (0 to 65535) ), который является символом Java. Я никогда не сохранял char из SDN, но, как говорит Майкл, я бы попробовал сравнить его как целое число, то есть 84. Это работает?   -  person jjaderberg    schedule 28.08.2015
comment
Да, ответ сравнивает это с кодом ascii, ГДЕ n.amino = 84 отлично работает!!! Спасибо Михаил за ваш немедленный ответ.   -  person pv1    schedule 29.08.2015


Ответы (1)


Согласно комментариям выше, лучшее решение на данный момент:

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.

person pv1    schedule 01.09.2015