如何使用 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
中的数据,您可以使用 Specifications
、Query by Example
和 Querydsl Extension
,我建议使用 Specifications
] 因为我觉得它更强大。您可以查看 Spring Data JPA - Reference Documentation
了解更多信息。
对于随机排序数据,我认为您无法在 Spring Data
中做到这一点,因为据我所知,并非所有数据库都具有该功能。您先找到过滤问题的总数,然后查询其中的随机页面如何?
这是我的服务实现方法:
@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
中的数据,您可以使用 Specifications
、Query by Example
和 Querydsl Extension
,我建议使用 Specifications
] 因为我觉得它更强大。您可以查看 Spring Data JPA - Reference Documentation
了解更多信息。
对于随机排序数据,我认为您无法在 Spring Data
中做到这一点,因为据我所知,并非所有数据库都具有该功能。您先找到过滤问题的总数,然后查询其中的随机页面如何?