Java Spring数据mongoDB:findAll()按子记录使用ExampleMatcher和分页(类似于[value1,value2])
我在通过多个值查找数据库记录时遇到了一个问题,比如通过ADMIN&MANAGER中的角色获取用户,以及示例查询和分页 UserContoller.javaJava 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
@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的所有用户
谢谢你的帮助
谢谢大家!