Mysql
 sql >> Base de données >  >> RDS >> Mysql

Mise à jour des lignes dans jOOQ avec des jointures

Vous pensez probablement cela parce qu'il n'y a pas de UpdateJoinStep tapez un peu comme s'il y avait un SelectJoinStep que l'utilisation d'une jointure avec des mises à jour n'est pas possible dans jOOQ. Mais attention, SelectJoinStep est une simple commodité. Le JOIN L'opérateur est un opérateur qui relie deux tables, pas un mot-clé en SQL. Ainsi, jOOQ le supporte en tant qu'opérateur sur la Table taper. En utilisant votre mise à jour SQL comme exemple :

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"))

Vous pouvez transmettre l'expression de table ci-dessus à DSLContext.update(Table) comme n'importe quel autre. Je soupçonne que cela rend obsolète votre question restante ?