Ich hoffe du entschuldigst, dass ich hier trotz [close] nochmal was "nachschieße".
(1) Das Criteria-API ist
NICHT buggy. Zumindest was einfache Abfragen dieser Art betrifft. Wir verwenden es für weit komplexere Abfragen und haben bisher keine Probleme damit.
(2) Das Critiera-API ist für Situationen gedacht, in denen dynamische Abfragen zur Laufzeit "zusammengebaut" werden müssen. In diesem Fall ist die Abfrage aber sehr statisch und lautet in etwa:
Code:
select p from Project p join p.user u where u.userId=:userId
Die User-ID wird als query-Parameter zur Laufzeit angegeben:
Code:
query.setParameter("userId", userId);