JPA CriteriaBuilder -> Custom SQL hinzufügen

internet

Top Contributor
Hallo,

ich möchte bei einem JPA CriteriaBuilder noch ein SQL hinzufügen (das von einer anderen Klasse kommt etc.)

Also das Statement würde ich gerne noch dazu hinzufügen:
Java:
m.id IN (SELECT pe.permission FROM Permission pe WHERE pe.permissionRole.id = "
                            + permissionRole.getId()

Wie kann ich das machen?
 
Bah, komplexe JPA CriteriaQueries sind jetzt nichts, was ich mal eben aus der Hand schüttle -> müsste ich ausprobieren, aber ich denke mal, dass das etwa in der Richtung
Java:
Subquery<TypeOfID> permissionIds = criteriaQuery.subquery(TypeOfID.class);
Root<Permission> permissions = permissionId.from(Permission.class);
permissionIds.select(permissions.get(Permission_.id))
    .where(cb.equal(permissions.get(Permission_.permissionRole).get(PermissionRole_.id), permissionRole.getId());

criteriaQuery.where(permissions.get(TypeOfM_.id).in(permissionIds));
aussehen wird.
 
danke dir....
Aber eigentlich würde ich wirklich einfach nur gerne das oben genannten Custom SQL hinzufügen ohne, dass ich hierfür dein ersteller Code erstellen müsste, welche mir wirklich nur für das oben genannten SQL angepasst schein.

Im Prinzip würde ich gerne ein Custom SQL einer bestehenden Query anhängen.
Also das oben genannte SQL soll dynamisch sein...

also einfach irgendwas wie, sodass ich den SQL String der Query hinzufüge..
Java:
criteriaQuery.addQuery(customSqlString);
 
So etwas macht man überhaupt nicht: m.id IN (SELECT.... Verwende JOIN's wobei die Tabelle mit der geringsten Ergebnismenge immer zuerst stehen sollte.
 

Zurück
Oben