パスを返すクエリを実行しようとしていますが、で実行された同じクエリneo4j Web UI
は正しい結果を返しますがneo4j-ogm
、null
. neo4j-ogm-api,core:2.0.0-M01
Mavenからインストールしました。
私のJavaコードは次のようになります:
ルート.java:
@NodeEntity
public class Root
{
@GraphId
public Long id;
@Relationship(type = "Branch", direction = Relationship.OOUTGOING)
public List<Branch> branches = new ArrayList<>();
public Branch addLeaf(Leaf leaf, float length)
{
Branch b = new Branch(this, leaf);
b.length = length;
leaf.branch = b;
branches.add(b);
return b;
}
}
Leaf.java:
@NodeEntity
public class Leaf
{
@GraphId
public Long id;
@Property
public String color;
@Relationship(type = "Branch", direction = Relationship.INCOMING)
public Branch branch;
}
Branch.java:
@RelationshipEntity
public class Branch
{
@GraphId
public Long id;
public Branch(Root root, Leaf leaf)
{
this.root = root;
this.leaf = leaf;
}
@Property
public float length;
@StartNode
public Root root;
@EndNode
public Leaf leaf;
}
それでは、テストのためにやってみましょう
public class Main {
public static void main(String[] args) {
SessionFactory sessionFactory = new SessionFactory("com.my.package.name");
Session session = sessionFactory.openSession();
Root r = new Root()
r.addLeaf(new Leaf(), 1);
r.addLeaf(new Leaf(), 2);
session.save(r);
//Until this point everything is alright and
// all 3 nodes and 2 relationships are created
String query = "MATCH path = (l1:Leaf)-[*1..100]-(l2:Leaf) WITH path LIMIT 1 RETURN path";
QueryResultModel qrm = session.query(query, new HashMap<String, Object>());
// qrm.result.get(0).get("path") is null
}
}
何が間違っているのか説明してください。