【发布时间】:2017-01-06 20:31:55
【问题描述】:
我正在尝试使用 Spring Boot + Data Rest + JPA 构建简单的应用程序。
A 具有具有一对多关系的 Category 和 Book 实体:
<!-- language-all: java -->
@Entity
public class Category {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private Long id;
private String name;
@OneToMany(cascade = CascadeType.ALL, mappedBy = "category")
private Set<Book> books;
...getters & setters next...
}
和
@Entity
public class Book {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private Long id;
private String name;
@ManyToOne
private Category category;
...getters & setters next...
}
每个实体的简单存储库
@RepositoryRestResource
public interface BookRepository extends JpaRepository<Book, Long> {}
@RepositoryRestResource
public interface CategoryRepository extends JpaRepository<Category, Long> {}
及应用:
@SpringBootApplication
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
}
应用程序成功启动,我可以创建书籍和类别。
问:如何创建和删除它们之间的引用?
我尝试了这里描述的解决方案:POSTing a @OneToMany sub-resource association in Spring Data REST - 对我不起作用:在带有 "ContentType: text/uri-list" 标头的 PUT 请求中,我有响应代码 204,并且数据库中没有任何更改。深入研究,我在日志中发现了以下调试消息:
s.w.s.m.m.a.RequestMappingHandlerMapping :
Did not find handler method for [/categories/1/books]
此网址仅适用于 GET 请求。
问:知道我的配置有什么问题吗?
谢谢。
【问题讨论】:
标签: java spring spring-boot spring-data-jpa spring-data-rest