尝试从 Java Spring Boot 中的 H2 数据库中获取相关实体
Trying to get related entities from H2 database in Java Spring Boot
我刚刚开始学习 Spring Boot 并且正在使用 H2 数据库,我几乎所有的东西都在工作,但是我 运行 在尝试提出稍微复杂的请求时遇到了麻烦.我有 2 个表 'User' 和 'Purchase',我想创建并结束 returns 所有包含给定用户 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);
}
}
这基本上是两个实体的设置,我不确定在何处以及如何编写更具体的查询。任何帮助将不胜感激。
Yoy 可以使用@Query() 注解来编写查询。
您需要在您的存储库中声明一个方法,然后您可以在该方法上放置此注释。
例如:
@Query("SELECT u FROM User u WHERE u.status = 1")
Collection<User> findAllActiveUsers();
你可以从 here
那里得到更多的想法
我刚刚开始学习 Spring Boot 并且正在使用 H2 数据库,我几乎所有的东西都在工作,但是我 运行 在尝试提出稍微复杂的请求时遇到了麻烦.我有 2 个表 'User' 和 'Purchase',我想创建并结束 returns 所有包含给定用户 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);
}
}
这基本上是两个实体的设置,我不确定在何处以及如何编写更具体的查询。任何帮助将不胜感激。
Yoy 可以使用@Query() 注解来编写查询。 您需要在您的存储库中声明一个方法,然后您可以在该方法上放置此注释。
例如:
@Query("SELECT u FROM User u WHERE u.status = 1")
Collection<User> findAllActiveUsers();
你可以从 here
那里得到更多的想法