私は一般的なエンティティクラスを持っています:
@NodeEntity
public class Entity {
/*** Common Fields ***/
@GraphId
protected Long nodeId;
@Indexed(level = Indexed.Level.INSTANCE)
protected Long id;
@Indexed(level = Indexed.Level.INSTANCE)
protected String someProperty;
...
}
Entity クラスを拡張する Employee クラス:
public class Employee extends Entity {
@Indexed
private String someOtherProperty;
...
}
テストで次のことに気付きました。
@Autowired private GraphDatabaseService service;
Node node1 = service.index().forNodes("Employee").get("id", 1l).getSingle();
値を返しませんが、
Node node2 = service.index().forNodes("Employee").get("someProperty", "someValue").getSingle();
Node node3 = service.index().forNodes("Employee").get("someOtherProperty", "someOtherValue").getSingle();
どちらも期待どおりに戻ります。
「id」の名前を他のリテラルに変更し、1 (数値) と「1」 (文字列) の両方で検索しようとしましたが、それでも同じです。数値と関係があると思います。
@Indexed を間違った方法で使用しているのではないでしょうか?
使用: neo4j-version: 1.8 spring-data-neo4j.version: 2.1.0.RC4