How to change the property name of an embbed collection in Spring Hateos

╄→尐↘猪︶ㄣ 提交于 2019-12-22 09:49:06

问题


I am using Spring hateoas to generate a HAL interface. My code looks like this:

@RequestMapping(method = RequestMethod.GET)
public Resources<Resource<Type>> all() {
    List<Resource<Type>> sdf = typeRepository.all().stream().map(type -> {
        return new Resource<Type>(type, ControllerLinkBuilder.linkTo(this.getClass()).slash(type.getId()).withSelfRel());
    }).collect(Collectors.toList());

    Resources<Resource<Type>> resourcesType = new Resources<>(sdf);
    resourcesType.add(ControllerLinkBuilder.linkTo(ControllerLinkBuilder.methodOn(this.getClass()).all()).withSelfRel());
    return resourcesType;
}

And the generated json looks like this:

{
  "_links": {
    "self": {
      "href": "http://localhost:8080/type"
    }
  },
  "_embedded": {
    "typeEntityList": [
      {
        "id": "4f7fa2da-20e2-4b42-9b45-2d1749825785",
        "version": 0,
        "name": "name1",
        "_links": {
          "self": {
            "href": "http://localhost:8080/type/4f7fa2da-20e2-4b42-9b45-2d1749825785"
          }
        }
      }
    ]
  }
}

I would like to changed the name of the "typeEntityList", but I can't find how or where it comes from. Anyone know how?


回答1:


Just have a look here: http://docs.spring.io/spring-hateoas/docs/0.19.0.RELEASE/reference/html/#spis.rel-provider

What you are seeing is the default. If you put the EVO inflector on the classpath you will get something like "types". You can also put the @Relation annotation on your entity and change the rel names for collection and single resource.




回答2:


@RepositoryRestResource(path = "somePath",collectionResourceRel="proper_list_of_items_name")

String collectionResourceRel() default "";

The rel value to use when generating links to the collection resource.



来源:https://stackoverflow.com/questions/33289753/how-to-change-the-property-name-of-an-embbed-collection-in-spring-hateos

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!