Leider gibt es für diese spezielle Abfrage nicht viele "bessere" Möglichkeiten, den Wert count()
typsicher zu bekommen. Was Sie tun können, Typsicherheit hinzuzufügen, ist dies:
Field<Integer> f = count();
Integer count = jooq.
.select(f) // Or selectCount(). Replaced it to illustrate the case
.from(USERS)
.fetchOne(f);
Das Problem, das um den Vorsprung der größte Teil der Typinformation ist „verloren“ zu dem Java-Compiler, durch die Zeit, die fetch()
Methoden sind "erreicht". Es gibt keine Möglichkeit, dass eine ResultQuery.fetchXXX()
Methode es aus der Klausel SELECT
wiederherstellen und es für Sie produzieren kann.
In der jOOQ Benutzergruppe haben einige Benutzer argumentiert, die Projektion in die fetch()
Methoden zu verschieben, ganz so, wie C# 's LINQ oder Scala's SLICK es tun. Dies würde den Ausdruck von weiter fortgeschrittenen SELECT
Aussagen erheblich komplizieren. Ein more elaborate explanation is documented here.
Mit jOOQ 3.0 wurde eine zusätzliche Typensicherheit auf Datensatzebene eingeführt. In jOOQ 3.3 wird es somit möglich sein, einen einzelnen Wert als solchen zu holen (wurde als #2246 registriert):
<T> T fetchValue(Select<Record1<T>> select);