我正在使用Spring-data-
rest在某些JPA实体上提供读取的API。对于写操作,我需要发出Command对象,而不是直接写到DB,因此我添加了一个使用@RepositoryRestController
各种命令处理方法的自定义控制器:
@RequestMapping(method = RequestMethod.POST)
public @ResponseBody MyEntity post(@RequestBody MyEntity entity) {
String createdId = commands.sendAndWait(new MyCreateCommand(entity));
return repo.findOne(createdId);
}
我希望输出像spring-data-rest控制器的任何其他响应一样,得到充实,特别是我希望它为自身及其关系添加HATEOAS链接。
最近,Oliver Gierke亲自回答了这个问题(请参见第3点)(尽管问题使用了完全不同的关键字,所以我不会将其标记为重复)。
单个实体的示例将变为:
@RequestMapping(method = RequestMethod.POST)
public @ResponseBody PersistentEntityResource post(@RequestBody MyEntity entity,
PersistentEntityResourceAssembler resourceAssembler)) {
String createdId = commands.sendAndWait(new MyCreateCommand(entity));
return resourceAssembler.toResource(repo.findOne(createdId));
}
非分页列表的示例:
@RequestMapping(method = RequestMethod.POST)
public @ResponseBody Resources<PersistentEntityResource> post(
@RequestBody MyEntity entity,
PersistentEntityResourceAssembler resourceAssembler)) {
List<MyEntity> myEntities = ...
List<> resources = myEntities
.stream()
.map(resourceAssembler::toResource)
.collect(Collectors.toList());
return new Resources<PersistentEntityResource>(resources);
}
最后,对于分页响应,应该使用注入的PagedResourcesAssembler,传入方法注入的ResourceAssembler和Page,而不是实例化Resources。有关如何使用的更多细节PersistentEntityResourceAssembler
,并PagedResourcesAssembler
可以发现这个答案。请注意,目前这需要使用原始类型和未检查的强制类型转换。
可能还有自动化的空间,欢迎更好的解决方案。
PS:我还创建了JIRA票证,将其添加到Spring
Data的文档中。
我正在从Ajax JSON创建一个DataTable。 将创建DataTables,但它显示一个错误: DataTables警告:表ID=CHANGETABLE-为行0,列0请求未知参数“0”。有关此错误的详细信息,请参阅http://datatables.net/TN/4 我的JSON看起来如下所示 在我的Java控制器中创建了这样的JSON对象: 我不知道如何将此信息与 属性一起使用,以使其适
但是,这也不起作用。
我有一个片段,我想创建一个自定义列表视图,但当我发送参数到适配器,它给我的错误。 这是我的代码片段.. 这是我的Mainhome.java 我的错误是...
问题内容: 我对Java,JavaFX和编程一般还是有点陌生,但是我遇到的问题困扰着我。 在大多数教程中,我查找了有关填充ListView(更具体地说,使用ObservableArrayList)的方法,最简单的方法是从String的ObservableList中创建它,如下所示: 但是我不想使用字符串。我想使用我制作的名为Words的自定义对象: 每个Word对象只有两个属性:wordStr
我对Java、JavaFX和一般编程都有点陌生,我有一个问题让我大吃一惊。 在我查阅的大多数关于填充ListView(更具体地说,使用ObservableArrayList)的教程中,最简单的方法是从字符串的ObservableList创建它,如下所示: 但我不想用字符串。我想使用我制作的一个名为Words的自定义对象: 要明确的是,这不是android的,单词列表最终会被更改、保存和加载,所以我
null 还有更多,但没有一个解决方案对我有效。 下面是我的代码:类Employee 班人