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

6tr1vspr  于 2021-06-21  发布在  Mysql
关注(0)|答案(1)|浏览(342)

下面是我的服务实现方法:

@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);

}

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

q35jwt9p

q35jwt9p1#

如果你想过滤掉你的数据 Spring Data ,您可以使用 Specifications , Query by Example 以及 Querydsl Extension 我建议你去 Specifications 因为我觉得它更强大。你可以看看 Spring Data JPA - Reference Documentation 更多信息。
对于随机排序数据,我认为你不可能做到这一点 Spring Data 因为不是所有的数据库都有这个功能。你先找出你过滤过的问题的总数,然后随机查询一页怎么样?

相关问题