【问题标题】:NodeEntity wont persistNodeEntity 不会持续存在
【发布时间】: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,尽管 BookUser 都有其默认构造函数。 其次:这本书没有得到持久化。没有错误,我只是返回了相同的书对象(作者仍然为空),但 ID 仍然为空。 在 neo4j 客户端上查询 MATCH n RETURN n 也不会产生任何结果。

我尝试从 `Book 中删除 User 对象,认为错误就在那里,但我仍然得到相同的行为。 我做错了什么?

【问题讨论】:

    标签: json spring-boot spring-data-neo4j-4 request-mapping


    【解决方案1】:

    有时光是谈论一个问题就可以解决它...我忘记将包含这本书的包裹放入

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

    Application

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-09-08
      • 1970-01-01
      • 2023-04-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多