Ich arbeite an einem sehr großen Projekt, dass Blaze Persistenz es ist Kern. Wir haben eine sehr komplexe Architektur, die alle DB -Operationen letztendlich an einer bestimmten Blaze -Abfrage stellten, die so aussieht: < /p>
return criteriaBuilder
.from(entityClass, "entityData")
.innerJoinOn(ChangeData.class, "changes")
.on("changes.id").eqExpression("entityData.id")
.end()
.select("entityData")
.select("ROW_NUMBER() OVER (PARTITION BY changes.id ORDER BY changes.sequence DESC)", "rn")
.select("changes.id", "changes_id")
.select("changes. sequence")
.selectNew(entityObjectBuilder);
< /code>
Jetzt möchte ich diese gesamte CB -Ausgabe wie SO einwickeln: < /p>
Select * from (the above cb sql output) where rn = 1;
//some sort of a group by changes.id by max changes.sequence
< /code>
Ich habe ein paar Probleme damit: < /p>
Wenn ich es tue .FromsUbQuery Ich müsste alle Attribute von EntityClass manuell binden, was nicht möglich ist, weil ich es erhalte, wie es bei der Input (es wird angenommen, generisch zu sein). Internet… < /p>
Ich habe versucht, Folgendes zu tun: < /p>
return criteriaBuilder
.fromEntitySubquery(entityClass, "entityDataGroupedById")
.from(entityClass, "entityData")
.innerJoinOn(ChangeData.class, "changes")
.on("changes.id").eqExpression("entityData.id")
.end()
.where("rn").eq(1)
.end()
.select("entityData")
.select ("ROW_NUMBER() OVER (PARTITION BY changes.id ORDER BY changes.sequence DESC)", "rn")
.select("changes.id", "changes_id")
.select("changes. sequence")
.selectNew(entityObjectBuilder);
Ich arbeite an einem sehr großen Projekt, dass Blaze Persistenz es ist Kern. Wir haben eine sehr komplexe Architektur, die alle DB -Operationen letztendlich an einer bestimmten Blaze -Abfrage stellten, die so aussieht: < /p> [code] return criteriaBuilder .from(entityClass, "entityData") .innerJoinOn(ChangeData.class, "changes") .on("changes.id").eqExpression("entityData.id") .end() .select("entityData") .select("ROW_NUMBER() OVER (PARTITION BY changes.id ORDER BY changes.sequence DESC)", "rn") .select("changes.id", "changes_id") .select("changes. sequence") .selectNew(entityObjectBuilder); < /code> Jetzt möchte ich diese gesamte CB -Ausgabe wie SO einwickeln: < /p> Select * from (the above cb sql output) where rn = 1; //some sort of a group by changes.id by max changes.sequence < /code> Ich habe ein paar Probleme damit: < /p> Wenn ich es tue .FromsUbQuery Ich müsste alle Attribute von EntityClass manuell binden, was nicht möglich ist, weil ich es erhalte, wie es bei der Input (es wird angenommen, generisch zu sein). Internet… < /p> Ich habe versucht, Folgendes zu tun: < /p> return criteriaBuilder .fromEntitySubquery(entityClass, "entityDataGroupedById") .from(entityClass, "entityData") .innerJoinOn(ChangeData.class, "changes") .on("changes.id").eqExpression("entityData.id") .end() .where("rn").eq(1) .end() .select("entityData") .select ("ROW_NUMBER() OVER (PARTITION BY changes.id ORDER BY changes.sequence DESC)", "rn") .select("changes.id", "changes_id") .select("changes. sequence") .selectNew(entityObjectBuilder); [/code]
Ich habe einen Kriterien mit einer Gewerkschaft All (Set Operation), die ich als Objektbuilder einwickeln möchte (mit ausgewählten Neuen)
cb.with(ChangesCTE.class)
.from(Changes.class)
.bind......
Angenommen, ich habe das folgende Modell. Wir haben Studenten, die Prüfungen eines bestimmten Faches ablegen. Ein Thema kann mehrere Prüfungen haben, aber nur die neuesten Prüfungen werden...
Angenommen, ich habe das folgende Modell. Wir haben Studenten, die Prüfungen eines bestimmten Faches ablegen. Ein Thema kann mehrere Prüfungen haben, aber nur die neuesten Prüfungen werden...
Ich versuche derzeit, einen generischen Abfrage-Builder zu implementieren, der in verschiedenen Entitäten wiederverwendet werden kann.
Ich verwende Blaze Persistence, um die Abfrage...