我有以下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
都有其默认构造函数。
Secoundly:这本书没有坚持下去。没有错误,我只是返回相同的book-object(作者仍然为null)但仍然使用null id。
在neo4j客户端上查询MATCH n RETURN n
也不会产生任何结果。
我尝试从`Book中删除User
对象,认为错误在那里,但我仍然得到相同的行为。
我做错了什么?
答案 0 :(得分:0)
有时单独谈论一个问题就可以解决它...我已经忘记将包含本书的包裹放入
@Bean
public SessionFactory getSessionFactory() {
return new SessionFactory(/*Package of Book should have been here*/);
}
Application
中的