Автоматически связать сущность с идентификатора в контроллере покоя - PullRequest
0 голосов
/ 02 апреля 2019

Мне интересно, есть ли способ оптимизировать в SpringBoot 'RestController выборку необходимых сущностей. Для этого примера я использую репозитории SpringData JPA и Jackson. Давайте предположим, что у меня есть эта сущность Пользователь.

public class User() {
     UUID id;
     String name;
     String surname;
}

У меня также есть UserRepository, который простирается от JpaRepository, UserService и UserResolver, который выглядит следующим образом:

@RequiredArgsConstructor
public class UserResolver extends GenericResolver<User> {

    @NonNull
    UserRepository repo;

    @Override
    JpaRepository<User, UUID> getRepository() {
        return repo;
    }
}

Итак, что бы я хотел отойти от текущей реализации, такой как:

@RestController
@RequestMapping("/api")
class MyController {

   @Autowired UserService userService;

   @GetMapping("/user/{id}")
   public User getUserById(@PathParam String id) {
      User myUser = userService.load(id);
      ...
      // Do Whatever with the user
      return myUser;
   }
}

К такому методу:

   @GetMapping("/user/{id}")
   public User getUserById(@PathParam User myUser) {

      ...
      // Do Whatever with the user
      return myUser;
   }

Я знаю, что это фиктивный случай, но в некоторых ситуациях это сэкономит время и будет более оптимальным для загрузки всех зависимостей непосредственно из его идентификатора.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...