我有一个存储库
@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*/
}
使用字段的getter。
目前我可以将这些Pois保存到neo4j并将其检索回来,但是当我尝试通过cypher 在数据库中使用这些节点时,似乎字段未映射到neo4j属性
我认为spring-data-neo4j会将我的类字段转换为neo4j图形属性。我错了吗?
注意: save
电话似乎运作良好。之后我可以在数据库中看到节点,然后调用findAll()
将使用所有正确的值正确地返回所有已保存的节点(Pois)。但不知何故,在数据库中,我看不到任何属性/字段。
答案 0 :(得分:3)
问题是最后的字段。当从图中加载时,SDN将无法将值写回实体,因为这些字段是最终的(并且SDN将仅使用默认的无参数构造函数),因此,不支持最终字段。 删除决赛应该解决这个问题。