自动从Rest Controller中的ID连接实体

时间:2019-04-02 17:34:38

标签: java spring-boot spring-mvc spring-data-jpa

我想知道在SpringBoot的RestController中是否有一种优化方法来获取必要的实体。 对于此示例,我使用的是SpringData JPA存储库和Jackson。 假设我有这个实体User。

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;
   }

我知道这是一个虚拟案例,但是在某些情况下,这将节省时间,并且可以更直接地从其ID中加载所有依赖项。

0 个答案:

没有答案