Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Aktualisieren von Zeilen in jOOQ mit Verknüpfungen

Wahrscheinlich denken Sie das, weil es keinen UpdateJoinStep gibt Geben Sie ein, ähnlich wie bei einem SelectJoinStep dass die Verwendung eines Joins mit Updates in jOOQ nicht möglich ist. Aber Vorsicht, SelectJoinStep ist reine Bequemlichkeit. Der JOIN operator ist ein Operator, der zwei Tabellen verbindet, kein Schlüsselwort in SQL. Daher unterstützt jOOQ es als Operator auf der Table Typ. Am Beispiel Ihres SQL-Updates:

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

Sie können den obigen Tabellenausdruck an DSLContext.update(Table) übergeben wie jeder andere. Ich vermute, dass dies Ihre verbleibende Frage überholt?