如何使用 spring MVC 在给定条件下从 mysql 获取数据

How to fetch data from mysql within given condition using spring MVC

这是我的服务实现方法:

@Override
    public List<Question> getQuestion(Long questionId, int page, int records, String organizationId) throws InvalidIdException {

        Organization existingOrganization=organizationRepository.findOne(siteUtil.getDecryptedId(organizationId));
        Pageable pageInfo=new PageRequest(page-1,records);
        Page<com.oAssessment.entity.Question> existingQuestions=questionRepository.findAllByOrganizationAndDeleted
                (existingOrganization,false,pageInfo);
        List<Question> existingQuestion = new ArrayList<>();
        if(existingQuestions.hasContent()) {
            Iterator<com.oAssessment.entity.Question> existingQustionIterator = existingQuestions.iterator();
            while(existingQustionIterator.hasNext()) {
                com.oAssessment.entity.Question newQuestion = existingQustionIterator.next();
                Question question = new Question();
                if(newQuestion.getPkQuestionId()!=null) {
                    question.setSerialNo(newQuestion.getSerialNo());
                    question.setQuestionText(newQuestion.getText());
                    question.setDifLevel(newQuestion.getDifLevel());
                    question.setTypeOfquestion(newQuestion.getTypeOfQuestion());
                    existingQuestion.add(question);
                }
            }
        }
        return existingQuestion;
    }

jpa 存储库就像

@Repository
public interface QuestionRepository extends JpaRepository<Question, Long> {

    Page<Question> findAllByOrganizationAndDeleted(Organization existingOrganization, boolean b, Pageable pageInfo);

}

这样,所有的数据都来自数据库。但我只是想放一些条件来过滤掉数据。就像我想从数据库中获取一些关于给定主题的问题,没有问题,这样的问题难度级别。但数据应该来自数据库随机。请帮帮我。

如果您想过滤掉 Spring Data 中的数据,您可以使用 SpecificationsQuery by ExampleQuerydsl Extension,我建议使用 Specifications ] 因为我觉得它更强大。您可以查看 Spring Data JPA - Reference Documentation 了解更多信息。

对于随机排序数据,我认为您无法在 Spring Data 中做到这一点,因为据我所知,并非所有数据库都具有该功能。您先找到过滤问题的总数,然后查询其中的随机页面如何?