neo4j-ogm を使用して、2 つのデータベース呼び出しを含む次のコードを作成しました。データベース呼び出しを 1 つだけにしたいのですが。
public Member loadMemberByDomainSpecificId(String domainSpecificId) {
String query = "match (m:Member {domainSpecificId: {domainSpecificId}}) return m;";
Map<String, String> parameters = new HashMap<String, String>();
parameters.put("domainSpecificId", domainSpecificId);
Session neo4jSession = Neo4jSessionFactory.getInstance().getNeo4jSession();
Member member = neo4jSession.queryForObject(Member.class, query, parameters);
return super.find(member);
}
最初のデータベース呼び出しは
neo4jSession.queryForObject(Member.class, query, parameters);
2 番目のデータベース呼び出しは
return (Member)super(find(member);
super
はreturn session.load(Member.class, member.getId(), 1);
はどこsession
ですかneo4jSession
。
最初の API 呼び出しではノード / オブジェクトのみがフェッチされ、関連するノード / オブジェクトはフェッチされないため、2 番目の API 呼び出しを行います。2 番目の API 呼び出しは、ノードとそのすべての関係を更新します。
たった1回のデータベース呼び出しでこれらすべてを効率的に行う方法を知っている人はいますか?
queryForObject は、他の多くの neo4jSession メソッドがサポートしている可変深度をサポートしていないようです。