CsvHandler#

com.palmyralabs.palmyra.handlers.CsvHandler

Streams query results as CSV. Streaming is reactive, so exports scale without loading the full result set into memory.

Methods#

Method Signature
getHeaders default List<ColumnMeta> getHeaders()

Override getHeaders() to control the exported columns, their labels, and their order. Return null or an empty list to fall back to the schema’s declared fields.

Example#

@Component
@CrudMapping(value = "/v1/admin/user/export.csv", type = User.class)
public class UserCsvHandler implements CsvHandler, QueryHandler {

    @Override
    public List<ColumnMeta> getHeaders() {
        return List.of(
            ColumnMeta.of("loginName", "Email"),
            ColumnMeta.of("firstName", "First Name"),
            ColumnMeta.of("lastName",  "Last Name"),
            ColumnMeta.of("createdAt", "Created On")
        );
    }
}