【问题标题】:The repository finds three records, and the resulting list returns 6 records存储库找到 3 条记录,结果列表返回 6 条记录
【发布时间】:2020-08-08 06:56:04
【问题描述】:

仓库在请求发送控制器中找到三个条目,列表中放置了6个条目

请帮助我为什么会发生这种情况,我不明白((((((

域类用户生成的唯一 ID:

public class User implements UserDetails, Serializable {
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Long userId;

控制器方法:

@PreAuthorize("hasAuthority('_2_TEACHER')")
    @GetMapping("/project/{projectId}/party/create")
    public String viewTeacherCreateProjectParty(
            @PathVariable("projectId") Project project,
            Party party,
            Model model) {
        List<User> users = userService.userList(Sort.by("username"));
        model.addAttribute("project", project);
        model.addAttribute("party", party);
        model.addAttribute("users", users);
        return "teacherProjectPartyCreate";
    }

    @PreAuthorize("hasAuthority('_2_TEACHER')")
    @PostMapping("/project/{projectId}/party/create")
    public String processCreateProjectParty(
            @PathVariable("projectId") Project project,
            @Valid Party party,
            @RequestParam(value = "users") List<Long> usersIds,
            BindingResult bindingResult,
            Model model) {
        List<User> users = userService.findUsersByUserIdIn(usersIds);
        model.addAttribute("project", project);
        model.addAttribute("party", party);
        model.addAttribute("users", users);
        Long projectId = projectService.createProjectParty(project, party, users);
        return "redirect:/projects/project/" + projectId;
    }

服务中的方法:

public List<User> userList(Sort sort) {
    return userRepo.findAll(sort);
}

public List<User> findUsersByUserIdIn(List<Long> usersIds) {
    return userRepo.findUsersByUserIdIn(usersIds);
}

存储库中的方法:

List<User> findAll(Sort sort);

List<User> findUsersByUserIdIn(List<Long> usersIds);

调试熨平板:

【问题讨论】:

  • 它是什么类型的存储库?你试过@Query 吗?
  • CrudRepository,不,我还没有用@Query 尝试过,但仍然不清楚为什么会这样((
  • 很奇怪,直接通过repository调用方法的时候,记录没有重复。 pastenow.ru/783f8e67123c4832b29e497b5d768b61 List findUsersByUserIdIn(List usersIds); List findUserByUserIdIn(List userId);
  • 这些截图显示repository中的结果本身是正确的,但是通过服务的list返回一个double list,为什么会这样呢? prnt.sc/s5da9iprnt.sc/s5db4d
  • 如果一切正常,那么spring就没有这样的问题……可能是IDE有问题。

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


【解决方案1】:

我通过删除所有浏览器扩展并重新启动项目解决了这个问题。我注意到控制器方法被执行了两次,但是因为什么 - 这是一个谜

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-01-11
    • 1970-01-01
    • 1970-01-01
    • 2018-06-02
    • 2018-03-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多