2016-03-25 9 views
0

ノードへのクラスのフィールドをマッピングしていません。だから、あらかじめ定義されているsave(T... entities)のようなものを使用します。春データのNeo4jは、私が定義されていないカスタムメソッドを持つ</p> <pre><code>@Repository public interface PointOfInterestRepository extends GraphRepository<Poi> { // currently empty } </code></pre> <p>リポジトリを持っている性質

とフィールドのgetterと

@NodeEntity(label = "PointOfInterest") 
public class Poi { 

    @JsonIgnore 
    @GraphId 
    Long neo4jId; 

    @JsonManagedReference("node-poi") 
    @JsonProperty("node") 
    @Relationship(type = "BELONGS_TO", direction = Relationship.UNDIRECTED) 
    private Node node; 

    @JsonProperty("id") 
    @Property(name = "poiID") 
    private final String id; 

    @JsonProperty("uris") 
    @Property(name = "uris") 
    private final Set<URI> correspondingURIs = new HashSet<>(); 

    /* Some more stuff I skip here*/ 
} 

を次のように私は私のPoiクラスを持っています。

現在、私はそれらをバックのNeo4jおよび取得するために、このようなPOIを保存することが、私はCYPHER を経由してデータベース内のノードで動作するようにしようとすると、フィールドがプロパティをのNeo4jにマップされていないことが表示されます。

私はspring-data-neo4jがクラスフィールドをneo4jグラフプロパティに変換すると考えました。私はそれが間違っていますか?

注:saveコールは非常にうまくいくようです。その後、私はデータベース内のノードを見ることができ、findAll()を呼び出すと、保存されたすべてのノード(Pois)が正しい値で正しく返されます。しかし、どういうわけか、データベース内で、私はプロパティ/フィールドを見ることができません。

+0

あなたの実際の質問が不明です。 「どういうわけか、データベース内でプロパティ/フィールドが表示されません」という意味ですか? "しかし、私がデータベース内のそれらのノードでcypher経由で作業しようとすると、フィールドがneo4jプロパティにマップされていないように見えます。" ??? –

+0

neo4jにログインしてcypherクエリを実行しようとすると、プロパティが存在しないように見えるのでプロパティにアクセスできません。これが役立ちますか? – Matthias

+0

neo4jブラウザではノードが表示されますが、プロパティはありません。 SDNを使用すると、プロパティを照会して表示できますか?同じ質問をして申し訳ありませんが、これが何であるか把握するのは難しいです – Luanne

答えて

2

問題は最後のフィールドです。 SDNは、これらのフィールドが最終的なため(SDNはデフォルトのno-argsコンストラクタのみを使用するため)、グラフからロードされたときにエンティティに値を書き戻すことができず、最終フィールドはサポートされません。 最終版を削除するとこれが解決されます。

関連する問題

 関連する問題