DbSetup : multiple SQL Update

226 Views Asked by At

How do I add multiple update sql statements? In this example for those with ID 2,3,4,5

public static final Operation INSERT_LANGUAGE_DATA = 
    Operations.sequenceOf(Operations.insertInto("LANGUAGE")
        .columns("ID","DWH_CODE", "LANGUAGE" ,"NAME")
        .values(1, 0, "en", "language.english")
        .values(2, 7, "cs", "language.czech")
        .values(3, 1, "de", "language.german")
        .values(4, 2, "es", "language.spanish")
        .values(5, 3, "fr", "language.french")
        .build(),
        sql("UPDATE CUSTOMER set LANGUAGE_ID = 1 where ID = 1")
        );
1

There are 1 best solutions below

0
On

You can add each statement in sequence:

sql() takes SQL queries as arguments. It returns an Operation. Operations.sequenceOf() takes Operation instances as argument.

So you can do

Operations.sequenceOf(
    insertInto(...)
        .columns(...)
        .values(...)
        .build(), // first operation of the sequence
    sql("..."), // second operation of the sequence
    sql("...")); // third operation of the sequence

Or you can do

Operations.sequenceOf(
    insertInto(...)
        .columns(...)
        .values(...)
        .build(), // first operation of the sequence
    sql("...", // first SQL statement of the SQL operation
        "...")); // second SQL statement of the SQL operation

That said, you shouldn't have to update customers after languages have been inserted. Instead, you should first insert the languages, and then insert the customers, which would directly reference the languages previously created.