【发布时间】:2016-08-06 04:30:14
【问题描述】:
我有以下 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 来将 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 中的作者为 null,尽管 Book 和 User 都有其默认构造函数。
其次:这本书没有得到持久化。没有错误,我只是返回了相同的书对象(作者仍然为空),但 ID 仍然为空。
在 neo4j 客户端上查询 MATCH n RETURN n 也不会产生任何结果。
我尝试从 `Book 中删除 User 对象,认为错误就在那里,但我仍然得到相同的行为。
我做错了什么?
【问题讨论】:
标签: json spring-boot spring-data-neo4j-4 request-mapping