2015-06-18 8 views
5

Wir haben einige benutzerdefinierte Typen, die zu mehreren db-Felder widergespiegelt. Zum BeispielJOOQ Multi-Feld benutzerdefinierten Typ Konverter

PersonName{ 
    String salutation, 
    String firstName, 
    String lastName 
} 

gespeichert als 3 separate db-Felder. Und es ist langweilig, immer

db.select(PERSON.FIRST_NAME, PERSON.LAST_NAME, PERSON.SALUTATION, ... some other fields) 

dann holen den Rekord zu schreiben und Persontyp aus den entsprechenden Datensatzfelder erstellen.

Die Idee besteht darin, ein mehrspaltiges benutzerdefiniertes Feld PERSON_NAME zu definieren, das während der Abfrageausführung um jooq in drei "echte" Felder erweitert und im Ergebnis auf das Objekt PersonName gepackt wird.

Sieht aus wie es möglich ist, so etwas mit org.jooq.impl.AbstractField zu tun, aber ich frage mich, vielleicht gibt es eine Lösung für einen solchen Fall bereits.

Antwort

0

Es steht noch Feature-Anfragen diese Art von Funktionalität zu unterstützen:

Mit out-of-the-box-Funktionalität von jOOQ 3.6 könnten Sie diese Spalten irgendwo speichern als:

Field<?>[] personName = { 
    PERSON.SALUTATION, 
    PERSON.FIRST_NAME, 
    PERSON.LAST_NAME 
}; 

Und dann wählen Sie sie als solche:

db.select(personName) 
    .select(... some other fields);