我在Spring中创建了我认为相当简单的域模型。


 @ NodeEntity
 class Dependency {
 @ GraphId
 private Long id
 String groupId
 String artifactId
字符串版本

 @取
 @RelatedTo(type =“DEPENDS_ON”,direction = OUTGOING)
设置<依赖> dependencies = new HashSet< Dependency>()
}



 note *上面是用groovy编写的。


我还创建了一个后续的Repository(到目前为止所有的教科书!)。


 @RepositoryRestResource(collectionResourceRel =“ dependency“,path =”dependency“)
 interface DependencyRepository extends PagingAndSortingRepository< Dependency,Long> {
列表与LT;依赖> findByArtifactId(@Param(“artifactId”)String artifactId)
}

&#xA;&#xA; 最后是应用程序类.... < / p>&#xA;&#xA;
@ EnableNeo4jRepositories(basePackages =“io.byteshifter.depsgraph”)&#xA; @ SpringBootApplication&#xA; class Application扩展Neo4jConfiguration {&#xA;&# XA; public Application(){&#xA; setBasePackage( “io.byteshifter.depsgraph”)&#XA; }&#XA;&#XA; @Bean(destroyMethod =“shutdown”)&#xA; GraphDatabaseService graphDatabaseService(){&#xA;返回新的GraphDatabaseFactory()。newEmbeddedDatabase(“target / dependency.db”)&#xA; }&#XA;&#XA; public static void main(String [] args)抛出异常{&#xA; SpringApplication.run(Application,args)&#xA; }&#xA;}&#xA;
&#xA;&#xA; 现在我希望在 http://127.0.0.1:8080/dependency 它将创建所有对象和关系..
&#xA;&#xA ;<代码> {&#XA; “groupId”:“group1”,&#xA; “artifactId”:“artifact1”,&#xA; “版本”:“1.0”,&#xA; “依赖”:[&#xA; {“groupId”:“group2”,“artifactId”:“artifact2”,“version”:“2.0”},&#xA; {“groupId”:“group3”,“artifactId”:“artifact3”,“version”:“3.0”}&#xA; ]&#xA;}&#xA;&#xA;&#xA;
相反,我得到了......
&#xA;&#xA;<代码> {&#XA; “原因”:{&#xA; “原因”:{&#xA; “cause”:null,&#xA; “message”:“模板不能为空或空!”&#xA; },&#XA; “message”:“模板不能为空或空!(通过引用链:io.byteshifter.depsgraph.domain.Dependency [\”dependencies \“] - &gt; java.util.LinkedHashSet [0])”&#xA ; },&#XA; “message”:“无法读取JSON:模板不能为空或空!(通过引用链:io.byteshifter.depsgraph.domain.Dependency [\”dependencies \“] - &gt; java.util.LinkedHashSet [0] );嵌套异常是com.fasterxml.jackson.databind.JsonMappingException:模板不能为null或为空!(通过引用链:io.byteshifter.depsgraph.domain.Dependency [\“dependencies \”] - &gt; java.util .LinkedHashSet [0])“&#xA;}&#xA;&#xA;&#xA;
我毫不怀疑这是对我缺乏了解。如果有人能帮助引导我走向正确的方向,那将非常受欢迎。
&#xA;答案 0 :(得分:0)
我的REST知识让我失望了。我应该使用URI来表示其他依赖项。见下文:
{
"groupId": "group3",
"artifactId": "artifact3",
"version": "1.0",
"dependencies": ["http://127.0.0.1:8080/dependency/0", "http://127.0.0.1:8080/dependency/1", "http://127.0.0.1:8080/dependency/2"]
}