我想要搜索的數據庫例如一些搜索我有三個文本框 姓,名和性別 如果我輸入有 一些名字,有些姓氏,男我想搜索所有的人那個特定的名字和性別,並顯示它,我該如何做到這一點? 注:我只是新的春天和剛剛開始學習的感謝Spring MVC的 - 使用帕拉姆
控制器:
@RequestMapping(value = "/student/search", method = RequestMethod.GET)
public String searchStudent(@Param("name") String name, @Param("type") String type, Map<String, Object> model) {
Map<String, String> params = new HashMap<String, String>();
params.put("name", name);
params.put("type", gender);
model.put("students",studentRepository.findAll(StudentSpecification.search(params)));
return "/students/list";
}
}
規格:
public static Specification<Student> search(final Map<String, String> params) {
return (root, query, criteriaBuilder) -> {
List<Predicate> predicates = new ArrayList<Predicate>();
params.forEach((k, v) -> {
if (StringUtils.equals(k, "name")) {
if (StringUtils.isNotBlank(v)) {
Predicate hasFirstName =
criteriaBuilder.like(root.join("user").<String>get("firstName"), "%" + v + "%");
Predicate hasLastName =
criteriaBuilder.like(root.join("user").<String>get("lastName"), "%" + v + "%");
predicates.add(criteriaBuilder.or(hasFirstName, hasLastName));
}
}
});
return criteriaBuilder.and(predicates.toArray(new Predicate[] {}));
};
}
}
謝謝我試着在規範中使用另一個代碼,但它不工作,你能幫我嗎?請參閱編輯 –
什麼不適合你?你能發佈「用戶」和「學生」實體之間的映射嗎? – Awnen