Ich erstelle, was ich glaube, ein ziemlich einfaches Domain-Modell im Frühjahr zu sein.Spring Data Rest Neo4j: Vorlage darf nicht null oder leer sein
@NodeEntity
class Dependency {
@GraphId
private Long id
String groupId
String artifactId
String version
@Fetch
@RelatedTo(type = "DEPENDS_ON", direction = OUTGOING)
Set<Dependency> dependencies = new HashSet<Dependency>()
}
hinweis * das obige ist in groovy geschrieben.
Ich habe auch eine nachfolgende Repository (alle Lehrbuch bisher!) Erstellt.
@RepositoryRestResource(collectionResourceRel = "dependency", path = "dependency")
interface DependencyRepository extends PagingAndSortingRepository<Dependency, Long> {
List<Dependency> findByArtifactId(@Param("artifactId") String artifactId)
}
Und schließlich die Anwendungsklasse ....
@EnableNeo4jRepositories(basePackages = "io.byteshifter.depsgraph")
@SpringBootApplication
class Application extends Neo4jConfiguration {
public Application() {
setBasePackage("io.byteshifter.depsgraph")
}
@Bean(destroyMethod = "shutdown")
GraphDatabaseService graphDatabaseService() {
return new GraphDatabaseFactory().newEmbeddedDatabase("target/dependency.db")
}
public static void main(String[] args) throws Exception {
SpringApplication.run(Application, args)
}
}
Jetzt würde ich erwarten, wenn ich die folgende Nutzlast bei http://127.0.0.1:8080/dependency Feuer, dass es alle Objekte und Beziehungen ..
{
"groupId": "group1",
"artifactId": "artifact1",
"version": "1.0",
"dependencies" : [
{"groupId": "group2", "artifactId": "artifact2", "version": "2.0"},
{"groupId": "group3", "artifactId": "artifact3", "version": "3.0"}
]
}
schaffen würde Statt
, ich ..
{
"cause": {
"cause": {
"cause": null,
"message": "Template must not be null or empty!"
},
"message": "Template must not be null or empty! (through reference chain: io.byteshifter.depsgraph.domain.Dependency[\"dependencies\"]->java.util.LinkedHashSet[0])"
},
"message": "Could not read JSON: Template must not be null or empty! (through reference chain: io.byteshifter.depsgraph.domain.Dependency[\"dependencies\"]->java.util.LinkedHashSet[0]); nested exception is com.fasterxml.jackson.databind.JsonMappingException: Template must not be null or empty! (through reference chain: io.byteshifter.depsgraph.domain.Dependency[\"dependencies\"]->java.util.LinkedHashSet[0])"
}
Ich habe keinen Zweifel, das ist ein Mangel an Verständnis in meinem Namen. Wenn mir jemand helfen könnte, mich in die richtige Richtung zu lenken, wäre das sehr zu begrüßen.