Mysql
 sql >> Database >  >> RDS >> Mysql

Aggiornamento di righe in jOOQ con join

Probabilmente lo stai pensando perché non c'è UpdateJoinStep digita come se ci fosse un SelectJoinStep che l'utilizzo di un join con aggiornamenti non è possibile in jOOQ. Ma attenzione che SelectJoinStep è mera comodità. Il JOIN operator è un operatore che collega due tabelle, non una parola chiave in SQL. Pertanto, jOOQ lo supporta come operatore sulla Table genere. Utilizzando il tuo aggiornamento SQL come esempio:

Field<Long> userId = DSL.field("user_nested.id", Long.class);
create
    .update(USER.join(TEAM).on(TEAM.ID.eq(USER.TEAM_ID)))
    .set(USER.NAME, (concat(USER.NAME, "some text")))
    .where(TEAM.STATE.equal("test"))

Puoi passare l'espressione della tabella sopra a DSLContext.update(Table) come tutti gli altri. Sospetto che questo renda obsoleta la tua domanda rimanente?