我正在创建一个项目管理器,用户可以在其中拥有多个项目,但一个项目只能属于一个用户(@OnetoMany)。我设法建立了关系和所有内容,问题是我想创建一个自定义查询,仅显示一个用户的所有项目。您能告诉我 请问如何进行此客户查询?
- 用户类中的关系**
@OneToMany(cascade = CascadeType.ALL) @JoinColumn(name = "id_user") private List<Project> projects = new ArrayList<>();
- 项目控制器类**
@GetMapping("/listar/{userId}") public ResponseEntity<List<Project>> listProjectsByUser(@PathVariable Long userId) { return ResponseEntity.ok(projectService.listProjectsByUser(userId));}
- 项目服务类**
public List<Project> listProjectsByUser(Long userId) { return projectRepository.findProjectByUser(userId);}
最后,在ProjectRepository类中创建@Query
@Query("SELECT p FROM Project p WHERE p.id = :id_user") List<Project> findProjectByUser(Long id);
这是由JPA生成的Projects表,请注意,我正尝试使用列"id_user"执行"SELECT"操作
我尝试进行此查询,但它给出以下错误
未绑定命名参数:id_user;嵌套异常为组织休眠。查询异常:未绑定命名参数:id_用户
1条答案
按热度按时间t98cgbkg1#
你可以试试这个方法
替换id_用户-〉id
或替换id-〉id_user(如果需要)
我希望能成功