Ho la seguente creazione di selezione-query:Come evitare le virgolette attorno alias di tabella in jOOQ
final DSLContext create = DSL.using(..., SQLDialect.POSTGRES);
create
.select(DSL.field("identifier"), DSL.field("name"),
create.selectCount()
.from(DSL.table("person"))
.where(DSL.field("identifier").eq(DSL.field("personOuter.identifier")))
.asField("count"))
.from(DSL.table("person").as("personOuter"))
jOOQ genera la seguente query:
select
identifier,
name,
(select count(*)
from person
where identifier = personOuter.identifier) as "count"
from person as "personOuter"
La query dovrebbe essere:
select
identifier,
name,
(select count(*)
from person
where identifier = personOuter.identifier) as "count"
from person as personOuter
Quest'ultima query funziona perfettamente con PostgreSQL. L'alias della tabella non deve essere racchiuso tra virgolette.
È un errore?
(Si noti che la query è abbastanza stupida sto giocando intorno con jOOQ da valutare..)
Il seguente "hack" funziona:
create
.select(DSL.field("identifier"), DSL.field("name"),
create.selectCount()
.from(DSL.table("person"))
.where(DSL.field("identifier").eq(DSL.field("personOuter.identifier")))
.asField("count"))
.from("person as personOuter")
Grazie. Dovrò guardare nella tua risposta. Lo accetterò nei prossimi giorni. –
Grazie, il tuo feedback è stato molto utile. –
@JefJedrison: sei il benvenuto. In caso di ulteriori problemi, è sufficiente fare una nuova domanda su Stack Overflow. Saró in giro :) –