如何在Spring中保存List并返回PagedResources

时间:2017-12-26 18:10:16

标签: java spring spring-hateoas

我有一个List我需要在Spring Hateoas支持的REST API中作为PagedResources返回。我试过这个:

const char* GetMyString() const
{
    return myString.c_str();
}

具有:

List<User> users = someUserGenerationMethod();
PageImpl<User> page = new PageImpl<User>(users);//users size is greater than 1
return parAssembler.toResource(page, userResourceAssembler);

@Autowired private PagedResourcesAssembler<User> parAssembler; 是以下的实例:

userResourceAssembler

public class UserResourceAssembler extends ResourceAssemblerSupport<User, UserResource> {...}

但结果是public class UserResource extends ResourceSupport{...}

我怎么能实现这个目标?

2 个答案:

答案 0 :(得分:1)

问题是实例化PageImpl,不确定原因,但使用不同的构造函数:

Page<User> page = new PageImpl<User>(users, new PageRequest(0, DEFAULT_USER_PAGE_SIZE), 1);

解决了这个问题。有人知道为什么吗?错误或使用不当?

答案 1 :(得分:0)

有两种方法可以实现它。

  1. 重新查询数据库repo.findAll()以获取数据库中的用户列表(如果涉及某些数据库处理,例如id的时间戳或种子生成,这将非常有用)。
  2. 如果没有涉及数据库处理,那么我将返回generatedUsers而不是savedUsers。 (在这种情况下,请确保repo.saveAll(generatedUsers)成功执行并且没有错误。)