У меня есть несколько объектов JPA, каждый из которых управляется с помощью репозиториев Spring Rest Data, и я хочу перегрузить метод POST в одном из них, сделать один вызов сброса, а затем в остальном быть точно таким же.
Чего я хочу избежать, так это все время строить все свои объекты и отношения с нуля, я просто хочу получить именно то, что пружина даст мне по умолчанию, если я не предоставлю свой собственный метод.
Попытка1:
Создайте контроллер, который выглядит следующим образом:
@RepositoryRestController
public class Entity0Controller {
@Autowired
Entity0DataRestRepository repo;
@PostMapping(path="/entity0")
public Resource<Entity0> createEntity0(Entity0 e)
{
e.setName("I have been changed");
return new Resource<>(repo.save(e));
}
}
Ошибка, которую я получаю:
Путь к циклическому представлению [entity0]: будет отправлено обратно втекущий URL обработчика [/ entity0] снова.Проверьте настройки ViewResolver!(Подсказка: это может быть результатом неуказанного представления из-за генерации имени представления по умолчанию.)
Попытка 2:
Измените функцию POST на:
@PostMapping(path="/entity0")
public @ResponseBody Entity0 createEntity0(Entity0 e)
{
e.setName("I have been changed");
return repo.save(e);
}
Теперь я уклоняюсь от ошибки пути кругового обзора, но вообще не получаю никаких ссылок.
Я чувствую, что я близко, и если кто-то хочет взглянуть на MCVE / SSCCE (меньшечем 20 строк кода), код здесь: https://github.com/soandos/spring-rest-override-example