Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/348.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java JPA查询-将匹配的id添加到列表_Java_Querydsl - Fatal编程技术网

Java JPA查询-将匹配的id添加到列表

Java JPA查询-将匹配的id添加到列表,java,querydsl,Java,Querydsl,如何从该查询中检索匹配的id并将其添加到查询底部的列表中?目前我得到了一个包含结果的列表,但我不知道它们匹配的参数中的ID是什么 请参阅代码中的注释 另外,这不是完整的查询,我把它缩小了,这样更容易阅读 @Override public List<EventDTO> getTotalEventByFilter(List<Long> idList){ QActivity subActivity = new QActivity("subActivity");

如何从该查询中检索匹配的id并将其添加到查询底部的列表中?目前我得到了一个包含结果的列表,但我不知道它们匹配的参数中的ID是什么

请参阅代码中的注释

另外,这不是完整的查询,我把它缩小了,这样更容易阅读

@Override
public List<EventDTO> getTotalEventByFilter(List<Long> idList){
    QActivity subActivity = new QActivity("subActivity");
    QUser subUser = new QUser("subUser");
    QAttendancelist subAttendancelist = new QAttendancelist("subAttendancelist");

    ListSubQuery<Long> allUserAtEvent = new JPASubQuery().from(qUser)
        .innerJoin(qUser.attendancelist, qAttendancelist)
        .innerJoin(qAttendancelist.activity, qActivity)
        .where(qActivity.id.in(idList)) //<--- I need to know with what ID it matched to and add that ID to the list at the bottom of the code
        .where(qAttendancelist.present.isTrue())
        .list(user.id);

    ListSubQuery<LocalDate> eventDate = new JPASubQuery().from(qActivity)
        .where(qActivity.id.in(idList))
        .list(qActivity.activityDate);

     List<EventDTO> query = from(qUser)
        .innerJoin(qUser.attendancelist, qAttendancelist)
        .innerJoin(qAttendancelist.activity, qActivity)
        .leftJoin(qActivity.activityLocation, qActivityLocation)
        .where(user.id.in(allUserAtEvent))
        .where(qActivity.id.notIn(idList))
        .where(qAttendancelist.present.isTrue())
        .where(qActivity.activityDate.gtAll(eventDate)) 
        .groupBy(qActivity.name, qActivityLocation.name, qActivity.activityDate)
        .orderBy(user.id.desc())
        .list(new QEventDTO(qActivity.id, qActivity.name, qActivityLocation.name, //the matched ID));

return query;
}
@覆盖
公共列表getTotalEventByFilter(列表idList){
QActivity subActivity=新QActivity(“subActivity”);
QUser subUser=新QUser(“subUser”);
QAttendancelist subAttendancelist=新QAttendancelist(“subAttendancelist”);
ListSubQuery AllusateEvent=new JPASubQuery().from(qUser)
.innerJoin(qUser.attendancelist,qAttendancelist)
.innerJoin(qAttendancelist.activity,qActivity)

.where(qActivity.id.in(idList))/您的活动类(在此查询中由qActivity对象表示)有一个名为“id”的属性,这就是参数所匹配的。

它与idList中的id匹配。因此,如果列表有3个id,并且查询返回15个结果,那么在这15个结果中,我需要知道哪些结果属于id#1,哪些结果属于id#2等。我编辑了参数的名称以便于理解