【发布时间】:2020-09-29 11:14:10
【问题描述】:
我需要使用 JpaRepository 获取对象列表,但在某些情况下,我没有方法中的变量之一。例如:
如果我需要 findByNombreCursoContainsIgnoreCaseAndAreaBean 但我没有变量 Area,我应该怎么做?为我的每个查询案例创建具体方法?是否存在一种方法,我可以为 Area 传递 null 值并获取所有区域的查询?
将会
findByNombreCursoContainsIgnoreCaseAndAreaBean("example", null);
并以此获取所有带有“示例”的列表和所有区域。
我想做什么?我的应用程序中的搜索者:我认为这不是最佳选择:
public Page<Curso> searcher(String nombreCurso, Area area, int activo, Pageable pageable){
try {
if(nombreCurso.isEmpty() && area!=null && area.getIdArea() == 0 && activo == 2) {
return getAll(pageable);
} if(area.getIdArea() == 0 && activo == 2) {
return repo.findByNombreCursoContainsIgnoreCase(nombreCurso, pageable);
} if(activo != 2 && area.getIdArea() == 0) { // 0 = descatalogado / 1 = Activo
return repo.findByNombreCursoContainsIgnoreCaseAndActivo(nombreCurso, new Integer(activo).byteValue(), pageable);
} if(activo != 2){
return repo.findByActivo(new Integer(activo).byteValue(), pageable);
}else {
return repo.findByNombreCursoContainsIgnoreCaseAndAreaBean(nombreCurso, area, pageable);
}
} catch(Exception ex) {
return getAll(pageable);
}
}
【问题讨论】:
标签: java spring database spring-boot spring-data