Hallo,
ich habe ein kleines Problem, an dem ich schon fast den ganzen Tag sitze.
In der Anwendung gibt es verschiedene Requests (im Sinne von Nutzeranfrage, kein HTTP-Request). Jeder Request kann eine beliebige Anzahl von Notizen haben.
Außerdem hat jede Notiz einen Ersteller und ein Erstelldatum.
Ich brauche jetzt zu jedem Request die aktuellste / neueste Notiz. Von dieser Notiz brauche ich den Nutzer und von dem wiederum die Rolle (Admin, User, etc.).
Am Ende brauch ich alle Requests, deren letzte Notiz von Nutzern mit einer bestimmten Rolle erstellt wurde.
(Z.B. alle Requests, an denen zuletzt ein Admin etwas geschrieben hat)
Mein MySQL dazu sieht so aus:
Jetzt brauche ich das Ding aber nicht in MySQL, nicht in JPQL, sondern mithilfe der CriteriaApi, genauer gesagt ne Liste von Predicates. Hintergrund ist, dass dies Teil eines Filters ist, welcher mit der Criteria Api arbeitet.
Leider bin ich mit der CA nicht sonderlich geübt (benutze sonst nur JPQL) und versuche wie gesagt schon fast den ganzen Tag, das entsprechend zu "übersetzen".
Kann mir jemand helfen?
ich habe ein kleines Problem, an dem ich schon fast den ganzen Tag sitze.
In der Anwendung gibt es verschiedene Requests (im Sinne von Nutzeranfrage, kein HTTP-Request). Jeder Request kann eine beliebige Anzahl von Notizen haben.
Außerdem hat jede Notiz einen Ersteller und ein Erstelldatum.
Ich brauche jetzt zu jedem Request die aktuellste / neueste Notiz. Von dieser Notiz brauche ich den Nutzer und von dem wiederum die Rolle (Admin, User, etc.).
Am Ende brauch ich alle Requests, deren letzte Notiz von Nutzern mit einer bestimmten Rolle erstellt wurde.
(Z.B. alle Requests, an denen zuletzt ein Admin etwas geschrieben hat)
Mein MySQL dazu sieht so aus:
Code:
Select r.id, aNR.noticeCreator_User_fk, user.role_UserRole_fk
from request r
join (
Select rn.request_fk, id, noticeCreator_User_fk
from request_notice rn
join (
Select request_fk, max(noticeCreationDate) actuelDate
from request_notice
group by request_fk
) aD
on rn.noticeCreationDate = aD.actuelDate
and rn.request_fk=aD.request_fk
) aNR
on r.id=aNR.request_fk
join user
on aNR.noticeCreator_User_fk=user.id
Jetzt brauche ich das Ding aber nicht in MySQL, nicht in JPQL, sondern mithilfe der CriteriaApi, genauer gesagt ne Liste von Predicates. Hintergrund ist, dass dies Teil eines Filters ist, welcher mit der Criteria Api arbeitet.
Leider bin ich mit der CA nicht sonderlich geübt (benutze sonst nur JPQL) und versuche wie gesagt schon fast den ganzen Tag, das entsprechend zu "übersetzen".
Kann mir jemand helfen?