0

私はリポジトリを持っています

@Repository
public interface PointOfInterestRepository extends GraphRepository<Poi> {
    // currently empty
}

カスタム メソッドは定義されていません。だから私save(T... entities)はあらかじめ定義されているものを使います。

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

@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*/
}

フィールドのゲッター付き。

現在、そのような Pois を neo4j に保存して元に戻すことができますが、サイファーを介してデータベース内のこれらのノードを操作しようとすると、フィールドが neo4j プロパティにマップされていないように見えます

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

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

4

1 に答える 1

3

問題は最後のフィールドです。これらのフィールドは final であるため (SDN はデフォルトの引数なしコンストラクターのみを使用します)、そのため、final フィールドはサポートされていません。ファイナルを削除すると、これが修正されます。

于 2016-03-30T01:46:52.643 に答える