Neo4j 忽略枚举

Neo4j ignores Enums

我使用 Neo4j 创建了一个 TSUser 对象,该对象的状态显示用户是否处于活动状态。 当我在 Neo4j 数据库中创建用户时,状态没有显示,就好像它是短暂的一样。 但是,当我在代码中加载用户时(调试时),设置了枚举属性。 我想在 Neo4j 客户端中看到它。

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 n RETURN n" 在客户端中获取他并得到如图所示的结果。

枚举 State 必须属于提供给 SessionFactory 的包列表。如果没有,则不会被持久化。

您可能在调试模式下看到此值,因为您在同一个会话中,并重新加载实体加载和映射 usernameemail,但离开 state单独因为它不存在于图中。 如果您在加载实体之前执行 session.clear(),您会发现缺少值。