次の 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> {
}
Book
DBにaを格納するための単純なRest-Controllerを作成しました。
@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"
}
}
コントローラーに、私を混乱させる 2 つのことが起こります。まず、 book-object の author が null ですが、Book
と の両方にUser
デフォルトのコンストラクターがあります。第二に: Book は永続化されません。エラーはありません。同じ book-object が返されます (著者は null のままです) が、id は null のままです。MATCH n RETURN n
neo4j クライアントでクエリを実行しても、何も得られません。
User
障害がそこにあると考えて、オブジェクトを Book から削除しようとしましたが、それでも同じ動作が得られます。私は何を間違っていますか?