我使用Spring Data REST构建我的应用程序。它到目前为止一直运作良好,但我还想在返回的实体中添加一些自定义项,同时仍保留自动生成的链接。
我想做这样的事情:
@RepositoryRestController
public class SomeController {
@GetMapping("/entity/{id}")
public SomeEntity getEntity(@PathVariable int id)
SomeEntity entity = SpringDataREST.findById(id); //-> is there a way to do this?
Link randomLink = generateRandomLink();
entity.addLink(randomLink);
//do other stuff with entity
return entity;
}
}
SomeEntity
类延伸Spring HATEOAS ResourceSupport
。
答案 0 :(得分:0)
如果您使用的是Spring Data REST,则可以使用RepositoryEntityLinks以编程方式创建链接:
@Component
public class MyBean {
private final RepositoryEntityLinks entityLinks;
public MyBean(RepositoryEntityLinks entityLinks) {
this.entityLinks = entityLinks;
}
public Link someMethod(MyEntity entity) {
//...
return entityLinks.linkToSingleResource(entity)
}
}
注意 - 要使用linkToSingleResource
方法,MyEntity
必须实现Identifiable接口。相反,您可以使用方法linkForSingleResource:
return entityLinks.linkForSingleResource(MyEntity.calss, entity.getId())