[英]Spring Data Neo4j ogm Session issue with loadAll by id and depth
[英]Neo4J OGM Session.load(ID) returns null object for existing ID
我正在進行一些Neo4J測試,並遇到以下特殊問題。 我創建了一個小型模型,打算與OGM一起使用。 該模型具有超類實體和子類Child。 它們都在包persistence.model
。 實體具有所需的Long id;
與匹配的getId()
getter。
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的Child時,就會出現問題。 我正在嘗試三種方法,使用兩個連接系統( bolt和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,有一些明顯的好處,我希望能夠正確使用它。 誰能指出我正確的方向?
在測試代碼中,您正在通過類型為int
的id進行查找。
private int someIdInYourDatabase = 34617;
Neo4j中的內部ID是Long類型。
如果您將ID的類型更改為long
或Long
那么它將起作用。
private long someIdInYourDatabase = 34617;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.