【发布时间】:2017-03-23 21:20:06
【问题描述】:
我一直在关注 Youtube 上的 Spring Boot 快速入门教程。
在播放列表中的这个特定的video 上,我发现了一些非常奇特的东西。
来自 CourseController.java 的片段
@RequestMapping(method=RequestMethod.POST, value="/topics/{topicId}/courses")
public void addCourse(@RequestBody Course course, @PathVariable String topicId){
course.setTopic(new Topic(topicId,"",""));
courseService.addCourse(course);
}
来自 CourseService.java 的片段
public void addCourse(Course Course){
coursesRepository.save(Course);
}
起初,我认为这种方法会进一步改变,因为我怀疑它在这种状态下是否有效。
但是,当我运行应用程序时,一切都很好(即新的 Course 实体对象成功地作为现有 Topic 实体对象的父级),即使该方法与我发布的内容保持不变。
我想问一下,为什么父实体 Topic 的现有值没有像我最初假设的那样被覆盖?
我已经查阅了 Hibernate 文档和 Spring Data JPA 文档,但找不到直接解释为什么数据库没有发生意外操作的原因。
【问题讨论】:
标签: java spring hibernate spring-boot spring-data-jpa