je l'NodeEntity suivante:NodeEntity persistent wont
@NodeEntity(label = "Book")
public class Book{
private Long id;
private String content;
@Relationship(direction = Relationship.OUTGOING, type="WRITTEN_BY")
private User author;
}
où User
est
@NodeEntity(label = "User)
public class User{
private Long id;
private String username;
}
et BookRepository
@Repository
public interface BookRepository extends GraphRepository<Book> {
}
J'ai construire simple Rest-contrôleur pour stocker un Book
dans la base de données.
@Controller
@ResponseBody
@RequestMapping(path = "/books", consumes = MediaType.APPLICATION_JSON_VALUE, produces = MediaType.APPLICATION_JSON_VALUE)
@Transactional
public class BookController {
@Autowired
private BookRepository bookRepo;
@RequestMapping(method = RequestMethod.POST)
public Book createBook(@RequestBody Book book) {
return bookRepo.save(book);
}
Quand je maintenant POST
un livre JSON
{
"content":"Test content",
"author":{
"username":"Test-Username"
}
}
au contrôleur, deux choses se passent qui me confonds: D'abord, l'auteur dans le livre-objet est nul, bien que les deux Book
et les User
ont leur constructeur par défaut. Secundly: Le livre ne s'obtient pas. Il n'y a pas d'erreur, je viens d'obtenir le même livre-objet retourné (avec l'auteur toujours null) mais toujours avec un identifiant nul. La requête MATCH n RETURN n
sur le client neo4j ne donne rien non plus.
J'ai essayé d'enlever l'objet User
du `Livre, pensant que la faute était là, mais j'ai toujours le même comportement. Qu'est-ce que je fais de mal?