NodeBacked实体NPE - entityState为null

时间:2014-04-08 18:20:04

标签: neo4j spring-data-neo4j

我有一个示例项目,它使用了使用aspectj的Spring Data Neo4j高级映射。由于在持久保存实体时entityState属性为null,因此在使用NullPointerException的测试中失败。

我也可以在服务器本身启动并执行时复制它:

curl -i -X POST -H "Content-Type:application/json" -d '{  "firstName" : "Test",  "lastName" : "Person" }' http://localhost:8080/people

项目位于https://github.com/dhallam/spring-data-neo4j-demo,使用日志的Travis构建位于https://travis-ci.org/dhallam/spring-data-neo4j-demo/builds/22538972

我不确定我是否遗漏了某些内容,或者是否存在需要我提出JIRA问题的错误。

有什么想法吗?非常感谢提前。

修改1:

版本:Java v1.7; SDNeo4j v3.1.0.M1; SDRest v2.1.0.M1; Neo4j v2.0.1; Jetty v9.0.5.v20130815; AspectJ v1.7.4

尝试从下面的迈克尔评论中将@JsonIgnoreProperties添加到Person(@NodeEntity)并且它仍然失败。失败的代码是我跑的时候:

Person p = new Person();
// setters ...
p.persist();

persist()来电

public <T extends NodeBacked> T NodeBacked.persist() {
    return (T)this.entityState.persist();
}

entityState为空。

2 个答案:

答案 0 :(得分:3)

想出来。 Neo4jConfig类之前扩展了Neo4jConfiguration类。通过引入方面,需要将超类更新为Neo4jAspectConfiguration以提供额外的neo4jRelationshipBackingneo4jNodeBacking bean。

我在https://github.com/dhallam/spring-data-neo4j-demo更新了github引用项目,并且构建正在通过。

答案 1 :(得分:1)

您使用的是哪个版本?

您可以将@JsonIgnore用于entityState属性。

请参阅:http://forum.spring.io/forum/spring-projects/data/nosql/110063-unable-to-convert-nodeentity-object-to-json-with-jackson

@JsonIgnoreProperties({"entityState", "nodeId", "persistentState", "relationshipTo", "template"})