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

我已经构建了一个简单的 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 中删除对象,认为故障在那里,但我仍然得到相同的行为。我究竟做错了什么?

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 回答