0

次の 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> {
}

BookDBに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);
  }

POSTJSON を予約するとき

{
  "content":"Test content",
  "author":{
    "username":"Test-Username"
  }
}

コントローラーに、私を混乱させる 2 つのことが起こります。まず、 book-object の author が null ですが、Bookと の両方にUserデフォルトのコンストラクターがあります。第二に: Book は永続化されません。エラーはありません。同じ book-object が返されます (著者は null のままです) が、id は null のままです。MATCH n RETURN nneo4j クライアントでクエリを実行しても、何も得られません。

User障害がそこにあると考えて、オブジェクトを Book から削除しようとしましたが、それでも同じ動作が得られます。私は何を間違っていますか?

4

1 に答える 1

0

問題を話すだけで解決することもあります... 本が入っていたパッケージを

@Bean
public SessionFactory getSessionFactory() {
  return new SessionFactory(/*Package of Book should have been here*/);
}

の中にApplication

于 2016-04-14T14:49:24.827 に答える