我正在進行一些Neo4J測試並運行以下特殊問題。我創建了一個我打算與OGM一起使用的小模型。該模型有一個超類Entity和一個Child類Child。他們都在包persistence.model
。實體具有所需的Long id;
與匹配的getId()
吸氣劑。Neo4J OGM Session.load(ID)爲現有ID返回空對象
public abstract class Entity {
private Long id;
public Long getId() {
return id;
}
}
@NodeEntity
Child extends Entity {
String name;
public Child() {
}
}
創建子對象並通過OGM保持它們工作正常。我基於文檔中的示例並使用Neo4jSessionFactory對象,該對象使用包persistence.model
初始化SessionFactory。生成的數據庫包含具有正確ID的對象。
當我嘗試爲給定ID獲取子對象時出現問題。我用三種方法嘗試它,使用兩個連接系統(螺栓和OGM):
boltSession.run("MATCH (a:Child) WHERE id(a) = {id} RETURN a", parameters("id", childId));
ogmSession.query("MATCH (a:Child) WHERE id(a) = $id RETURN a", params);
ogmSession.load(Child.class, childId, 1);
前兩種方法實際上返回正確的數據。最後一個返回空值。最後一個,使用OGM,有一些明顯的好處,我希望能夠正確使用它。任何人都可以將我指向正確的方向嗎?
是否有可能提供可重現的測試用例?我已經嘗試過你在這裏描述的內容 - https://github.com/neo4j-examples/neo4j-sdn-ogm-issue-report-template/tree/so-44305093/so-44305093,它按預期工作(即收益節點)。 –
我在這裏用最少的代碼創建了一些測試用例:https://github.com/CountZukula/neo4j-ogm-bug-test-case-template。只需在數據庫中添加一個Child對象,在ogm.properties和Neo4JBolt.java中修改用戶名/密碼,並在TestMain.java類中設置新對象的ID。在我的情況下,只有ogmLoad()測試用例失敗。另外兩個人成功了。提前致謝! – CountZukula