我使用spring数据,我的DAO看起来像
public interface StudentDAO extends JpaRepository<StudentEntity, Integer> {
public findAllOrderByIdAsc(); // I want to use some thing like this
}
在上面的代码中,注释行显示了我的意图。spring Data能提供内置功能吗 用ASC/DESC查找按某列排序的所有记录?
我使用spring数据,我的DAO看起来像
public interface StudentDAO extends JpaRepository<StudentEntity, Integer> {
public findAllOrderByIdAsc(); // I want to use some thing like this
}
在上面的代码中,注释行显示了我的意图。spring Data能提供内置功能吗 用ASC/DESC查找按某列排序的所有记录?
当前回答
请查看Spring Data JPA -参考文档,第5.3节。查询方法,特别是在第5.3.2节。查询创建,见“表3”。方法名称中支持的关键字”(链接截至2019-05-03)。
我认为它确实有你需要的,和你说的一样的查询应该工作…
其他回答
请查看Spring Data JPA -参考文档,第5.3节。查询方法,特别是在第5.3.2节。查询创建,见“表3”。方法名称中支持的关键字”(链接截至2019-05-03)。
我认为它确实有你需要的,和你说的一样的查询应该工作…
简单的方法:
repository.findAll(Sort.by(Sort.Direction.DESC, "colName"));
来源:https://www.baeldung.com/spring-data-sorting
是的,你可以在Spring Data中使用查询方法进行排序。
例如:使用id字段的值按升序或降序排列。
代码:
public interface StudentDAO extends JpaRepository<StudentEntity, Integer> {
public findAllByOrderByIdAsc();
}
可选择的解决方案:
@Repository
public class StudentServiceImpl implements StudentService {
@Autowired
private StudentDAO studentDao;
@Override
public List<Student> findAll() {
return studentDao.findAll(orderByIdAsc());
}
private Sort orderByIdAsc() {
return new Sort(Sort.Direction.ASC, "id")
.and(new Sort(Sort.Direction.ASC, "name"));
}
}
Spring Data Sorting:排序
AFAIK,我认为这对于直接的方法命名查询是不可能的。不过,您可以使用Sort类来使用内置的排序机制。存储库有一个findAll(Sort)方法,您可以将Sort的实例传递给该方法。例如:
import org.springframework.data.domain.Sort;
@Repository
public class StudentServiceImpl implements StudentService {
@Autowired
private StudentDAO studentDao;
@Override
public List<Student> findAll() {
return studentDao.findAll(sortByIdAsc());
}
private Sort sortByIdAsc() {
return new Sort(Sort.Direction.ASC, "id");
}
}
public interface StudentDAO extends JpaRepository<StudentEntity, Integer> {
public List<StudentEntity> findAllByOrderByIdAsc();
}
上面的代码应该可以工作。我用的是类似的东西:
public List<Pilot> findTop10ByOrderByLevelDesc();
它返回最高级别的10行。
重要的是: 因为我被告知很容易忽略这个答案的关键点,这里有一点澄清:
findAllByOrderByIdAsc(); // don't miss "by"
^