2016-04-08 1 views
0

Работа с Neo4j Я создал объект TSUser, который имеет состояние, показывающее, активен или нет. Когда я создаю пользователя в DB Neo4j, состояние не отображается, как если бы оно было временным. Однако, когда я загружаю пользователя в код (во время отладки), устанавливается атрибут enum. Я хотел бы увидеть его в клиенте Neo4j.Neo4j игнорирует Enums

TSUser выглядит следующим образом:

@NodeEntity 
public class TSUser{ 

    private Long id; 
    private State state; 
    private String username; 
    private String email; 

    //Getter/Setter 

} 

с State быть

public enum State{ 
    ACTIVE, INACTIVE 
} 

После сохраняющиеся в TSUser, я за ним в клиенте с «MATCH п ВОЗВРАТ п» и получить результат в виде показан на картинке. User without state

ответ

1

Перечисление State должно относиться к списку упаковок, поставляемых в SessionFactory. Если нет, это не будет сохраняться.

Вы, вероятно, видя это значение в режиме отладки, потому что вы находитесь в той же сессии, и перегрузочные нагрузки сущностей и карты username и email, но оставляет state в покое, так как она не существует в графе. Если вы должны были сделать session.clear() перед загрузкой объекта, вы увидите, что значение отсутствует.

+0

Вы правы. Я не заметил до сих пор, но произошла ошибка, когда я реорганизовал структуру пакета. Большое спасибо, это вызывало меня в течение нескольких часов :) – Urr4