Java Spring数据mongoDB:findAll()按子记录使用ExampleMatcher和分页(类似于[value1,value2])

Java Spring数据mongoDB:findAll()按子记录使用ExampleMatcher和分页(类似于[value1,value2]),java,spring,spring-boot,spring-data-mongodb,Java,Spring,Spring Boot,Spring Data Mongodb,我在通过多个值查找数据库记录时遇到了一个问题,比如通过ADMIN&MANAGER中的角色获取用户,以及示例查询和分页 UserContoller.java @RestController @RequestMapping("/users") public class UserController { @Autowired private UserService userService; @RequestMapping(method = Requ

我在通过多个值查找数据库记录时遇到了一个问题,比如通过ADMIN&MANAGER中的角色获取用户,以及示例查询和分页

UserContoller.java

@RestController
@RequestMapping("/users")
public class UserController {
    @Autowired
    private UserService userService;
    
    @RequestMapping(method = RequestMethod.GET)
    public Page<User> getUsersPage(
            @PageableDefault(page = 0, size = 10) @SortDefault.SortDefaults({
                    @SortDefault(sort = "id", direction = Direction.DESC) }) Pageable pageable,
            User user) {
        return userService.getUserPage(user, pageable);
    } 
}
@Service
public class UserService {
    private static final Logger logger = LoggerFactory.getLogger(UserService.class);    
    
    @Autowired
    private UserRepository userRepository;
    
    public Page<User> getUsersPage(User user, Pageable pageable) {
        logger.debug("Getting Users : {}, {}", user, pageable);
        Page<User> userPage = userRepository.findAll(Example.of(user), pageable);
        
        logger.debug("Users: {}", userPage.getContent());
        return userPage;
    }
}
@Document(collection = "users")
public class User {
    
    @Id
    private String           id;
    private String           name;
    private String           password;
    private Role             role;
    
    public User() {
    }
    
    public String getId() {
        return id;
    }
    
    public void setId(String id) {
        this.id = id;
    }
    
    public String getName() {
        return name;
    }
    
    public void setName(String name) {
        this.name = name;
    }
    
    public String getUsername() {
        return username;
    }
    
    public void setUsername(String username) {
        this.username = username;
    }
   
    public String getPassword() {
        return password;
    }
    
    public void setPassword(String password) {
        this.password = password;
    }
    
    public Role getRole() {
        return role;
    }
    
    public void setRole(Role role) {
        this.role = role;
    }
}       
@Document(collection = "roles")
public class Role {
    
    @Id
    private String     id;
    private String     name;
    
    public Role() {
        
    }
    
    public String getId() {
        return id;
    }
    
    public void setId(String id) {
        this.id = id;
    }
    
    public String getName() {
        return name;
    }
    
    public void setName(String name) {
        this.name = name;
    }
}
Role.java

@RestController
@RequestMapping("/users")
public class UserController {
    @Autowired
    private UserService userService;
    
    @RequestMapping(method = RequestMethod.GET)
    public Page<User> getUsersPage(
            @PageableDefault(page = 0, size = 10) @SortDefault.SortDefaults({
                    @SortDefault(sort = "id", direction = Direction.DESC) }) Pageable pageable,
            User user) {
        return userService.getUserPage(user, pageable);
    } 
}
@Service
public class UserService {
    private static final Logger logger = LoggerFactory.getLogger(UserService.class);    
    
    @Autowired
    private UserRepository userRepository;
    
    public Page<User> getUsersPage(User user, Pageable pageable) {
        logger.debug("Getting Users : {}, {}", user, pageable);
        Page<User> userPage = userRepository.findAll(Example.of(user), pageable);
        
        logger.debug("Users: {}", userPage.getContent());
        return userPage;
    }
}
@Document(collection = "users")
public class User {
    
    @Id
    private String           id;
    private String           name;
    private String           password;
    private Role             role;
    
    public User() {
    }
    
    public String getId() {
        return id;
    }
    
    public void setId(String id) {
        this.id = id;
    }
    
    public String getName() {
        return name;
    }
    
    public void setName(String name) {
        this.name = name;
    }
    
    public String getUsername() {
        return username;
    }
    
    public void setUsername(String username) {
        this.username = username;
    }
   
    public String getPassword() {
        return password;
    }
    
    public void setPassword(String password) {
        this.password = password;
    }
    
    public Role getRole() {
        return role;
    }
    
    public void setRole(Role role) {
        this.role = role;
    }
}       
@Document(collection = "roles")
public class Role {
    
    @Id
    private String     id;
    private String     name;
    
    public Role() {
        
    }
    
    public String getId() {
        return id;
    }
    
    public void setId(String id) {
        this.id = id;
    }
    
    public String getName() {
        return name;
    }
    
    public void setName(String name) {
        this.name = name;
    }
}
我将通过传递一个请求参数/users?
role.name=ADMIN
,获取角色为ADMIN的用户列表,但是我希望通过查询示例和分页获取角色为ADMIN&MANAGER的所有用户

谢谢你的帮助

谢谢大家!