0
Bu sorgudan eşleşen kimliği nasıl alabilir ve sorgunun altındaki listeye nasıl ekleyebilirim? Şu anda sonuçlarla bir liste alıyorum, ancak parametrede hangi ID ile eşleştiklerini bilmiyorum.JPA sorgusu - eşleşecek kimliği eşleme listesine ekleyin
Koddaki yorumlara bakın.
P.S. Bu tam sorgu değil, daha küçük yaptım, böylece daha kolay okunması. (QActivity nesnesi tarafından bu sorgu temsil)
@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;
}
IdList öğesindeki bir kimlikle eşleşir. Yani listenin 3 kimliği varsa ve sorgu 15 sonuç döndürürse, bu 15'in dışında hangi sonuçların kimlik no. 1'e ait olduğunu bilmem gerekir. Bu sonuç # 2'ye aittir. Bunun için parametrenin adını düzenledim. anlaşılması daha kolay –