Есть ли способ генерировать ссылки для ассоциаций сущностей, как в Spring Data REST? - PullRequest
0 голосов
/ 31 мая 2018

Я использую 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.

1 Ответ

0 голосов
/ 31 мая 2018

Если вы используете 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 должен реализовать Идентифицируемый интерфейс.Вместо этого вы можете использовать метод linkForSingleResource :

return entityLinks.linkForSingleResource(MyEntity.class, entity.getId())
...