【发布时间】:2020-07-12 02:31:17
【问题描述】:
我刚刚开始学习 Spring Boot,并且正在使用 H2 数据库,我几乎可以正常工作,但是我在尝试提出稍微复杂一点的请求时遇到了麻烦。我有 2 个表“用户”和“购买”,我想创建一个端点来返回包含给定用户 ID 的所有购买。如果我使用 SQL 连接或一些类似的查询,这似乎很简单,但我不知道如何实现。
我有一个用于用户和购买的存储库 (CrudRepository),然后为每个用户提供一个从数据库获取相关数据的服务。这非常适合 get、getById 等基本需求。但我不知道如何指定诸如 join 之类的查询。
public interface UserRepo extends CrudRepository<User, Integer> {}
public interface ReceiptRepo extends CrudRepository<Receipt, Integer> {}
@Service
public class UserService {
@Autowired
UserRepo userRepo;
public User getUser(int id) { return userRepo.findById(id).get(); }
}
@RestController
public class UserController {
@Autowired
UserService userService;
@GetMapping("/user/{id}")
private User getUser(@PathVariable("id") int id) {
return userService.getUser(id);
}
}
这基本上是两个实体的设置,我不确定在哪里以及如何编写更具体的查询。任何帮助将不胜感激。
【问题讨论】:
标签: spring-boot spring-data-jpa h2