neo4j-ogm を使用して、次のコードを作成しました。
@Configuration
@EnableNeo4jRepositories(basePackages="com.neo4j.demo.repositories")
@EnableTransactionManagement
@ComponentScan("com.neo4j.demo")
public class Neo4jApplication extends Neo4jConfiguration{
@Bean
public SessionFactory getSessionFactory(){
return new SessionFactory("com.neo4j.demo.domain");
}
@Bean
public Neo4jServer neo4jServer(){
return new RemoteServer("http://username:password@localhost:7474","neo4j","neo4jhello");
}
@Bean
@Scope(value="session",proxyMode=ScopedProxyMode.TARGET_CLASS)
public Session getSession() throw Exception{
return super.getSession();
}
}
ノードエンティティ:
@NodeEntity
public class Message {
@GraphId
Long nodeId;
@Index(unique=true)
String id;
Person author;
@Relationship(type="LISTENER")
List<Person> listeners;
//getters and setters
}
@NodeEntity
public class Person{
@GraphId
Long nodeId;
@Index(unique=true)
String id;
String name;
//getters and setters
}
session.save を使用してメッセージの新しいインスタンスを保存すると、うまく機能します。関連するすべてのエンティティが保存されます。しかし、session.loadはうまく機能していないようです
List<Message> messages = session.loadAll(Message.class,N)
ここで、N は [-1,3] で、結果は同じです。作成者、リスナーなどのプロパティは null です。なんで?