我有这个实体:
public class AnswerEntity {
@ManyToOne
private UserEntity user;
@ManyToOne
private AnswerDirectoryEntity answer;
@ManyToOne
private QuestionEntity question;
}
public class QuestionEntity {
@ManyToOne
private QuestionnaireEntity questionnaire;
}
public class QuestionnaireEntity {
private String code;
}
我需要通过
user ID
以及code
中相应的QuestionnaireEntity
来获取所有用户答案。我通过创建这样的查询来做到这一点:
List<AnswerEntity> answerList = answerRepository.findAllByUserId(userId);
并使用
equals
遍历列表中的每个对象,然后将每个对象与问卷代码进行比较:for(AnswerEntity answerEntity : answerList){
if(answerEntity.getQuestion().getQuestionnaire().getCode().equals(questionnaireId)){
///
}
但是该解决方案非常慢,因为它必须迭代数据库中的每个对象,
有人可以告诉我如何在我的存储库中创建一个对我有帮助的
query
吗? 最佳答案
您可以通过这种方式在存储库中使用JPA方法查询
List<AnswerEntity> findByUserIdAndQuestionQuestionnaireCode(Integer userId, String code);