簡體   English   中英

Neo4J OGM Session.load(ID)為現有ID返回空對象

[英]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時,就會出現問題。 我正在嘗試三種方法,使用兩個連接系統( boltogm ):

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的類型更改為longLong那么它將起作用。

private long someIdInYourDatabase = 34617;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM