Search
Write a publication
Pull to refresh
0
0
Send message

Да, видел, как пример написал, возможно кому-то будет полезно.

В postgres можно делая INSERT вернуть значение последовательности:

@Data
@Accessors(chain = true)
public static class Note {
    private Long id;
    private String data;
}
public Note save(Note entity) {
    var sql = """
            INSERT INTO notes (id, data)
            VALUES (default, :data)
            RETURNING id
            """;
    var params = new MapSqlParameterSource().addValue("data", entity.getData());
    return namedParameterJdbcTemplate.query(sql, params, x -> {
        if (x.next()) {
            entity.setId(x.getLong("id"));
        }
        return entity;
    });
}

Таким образом, сделать все за один запрос.
Если необходим батч, то прийдется заранее получить IDки:

SELECT nextval('notes_id_seq') FROM generate_series(1, :size)

Information

Rating
Does not participate
Registered
Activity