我有以下 NodeEntity:
@NodeEntity(label = "Book")
public class Book{
private Long id;
private String content;
@Relationship(direction = Relationship.OUTGOING, type="WRITTEN_BY")
private User author;
}
User
在哪里
@NodeEntity(label = "User)
public class User{
private Long id;
private String username;
}
和BookRepository
@Repository
public interface BookRepository extends GraphRepository<Book> {
}
我已经构建了一个简单的 Rest-Controller 来将 a 存储Book
在数据库中。
@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);
}
当我现在POST
预订 JSON
{
"content":"Test content",
"author":{
"username":"Test-Username"
}
}
对于控制器,发生了两件事让我感到困惑:首先,book-object 中的 author 是 null,尽管 theBook
和 theUser
都有它们的默认构造函数。其次:这本书没有得到持久化。没有错误,我只是返回了相同的书对象(作者仍然为空),但 ID 仍然为空。MATCH n RETURN n
在 neo4j 客户端上查询也不会产生任何结果。
我尝试User
从 `Book 中删除对象,认为故障在那里,但我仍然得到相同的行为。我究竟做错了什么?