我正在尝试使用 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...
}
and
@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);
}
}
应用程序成功启动,我可以创建书籍和类别。
Q.:我如何创建和删除它们之间的引用?
我尝试了这里描述的解决方案:在 Spring Data REST 中发布 @OneToMany 子资源关联 https://stackoverflow.com/questions/25311978/posting-a-onetomany-sub-resource-association-in-spring-data-rest- 对我不起作用:根据 PUT 请求“内容类型:文本/uri-列表”header 我有响应代码 204 并且数据库中没有任何更改。更深入地查看,我在日志中发现了以下调试消息:
s.w.s.m.m.a.RequestMappingHandlerMapping :
Did not find handler method for [/categories/1/books]
此 url 仅适用于 GET 请求。
Q.:有什么想法我的配置有什么问题吗?
Thanks.