我有一个示例项目,它使用了使用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
为空。
答案 0 :(得分:3)
想出来。 Neo4jConfig
类之前扩展了Neo4jConfiguration
类。通过引入方面,需要将超类更新为Neo4jAspectConfiguration
以提供额外的neo4jRelationshipBacking
和neo4jNodeBacking
bean。
我在https://github.com/dhallam/spring-data-neo4j-demo更新了github引用项目,并且构建正在通过。
答案 1 :(得分:1)
您使用的是哪个版本?
您可以将@JsonIgnore用于entityState属性。
@JsonIgnoreProperties({"entityState", "nodeId", "persistentState", "relationshipTo", "template"})