Class ExtendedCrudService<Entity,ID,Dto extends DataTransferObject<Entity>,Pageable extends PaginatedListRequest,Repository extends org.springframework.data.jpa.repository.JpaRepository<Entity,ID> & QuerydslFastPagingRepository<Entity,ID>>
java.lang.Object
biz.devstack.springframework.boot.jpa.crud.CrudService<Entity,ID,Dto,Pageable,Repository>
biz.devstack.springframework.boot.jpa.crud.ExtendedCrudService<Entity,ID,Dto,Pageable,Repository>
public abstract class ExtendedCrudService<Entity,ID,Dto extends DataTransferObject<Entity>,Pageable extends PaginatedListRequest,Repository extends org.springframework.data.jpa.repository.JpaRepository<Entity,ID> & QuerydslFastPagingRepository<Entity,ID>>
extends CrudService<Entity,ID,Dto,Pageable,Repository>
-
Field Summary
FieldsModifier and TypeFieldDescriptionprotected static final Integerprotected static final Integerprotected Stringprotected static final IntegerFields inherited from class biz.devstack.springframework.boot.jpa.crud.CrudService
jdbcTemplate, repository -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoiddownloadCsvExportFile(jakarta.servlet.http.HttpServletResponse response, String token, Long expireAt, Pageable pageable) voiddownloadCsvImportTemplate(jakarta.servlet.http.HttpServletRequest request, jakarta.servlet.http.HttpServletResponse response) generateDownloadLinkForExport(jakarta.servlet.http.HttpServletRequest request, Pageable pageable) protected Stringprotected String[]protected String[]voidimportCsvFile(org.springframework.web.multipart.MultipartFile multipartFile) protected voidprocessCsvImport(org.springframework.jdbc.core.JdbcTemplate jdbcTemplate, List<org.apache.commons.csv.CSVRecord> csvRecords) Bulk import entities example:protected voidwriteEntityToCsvRow(org.apache.commons.csv.CSVPrinter csvPrinter, Entity entity) Export entity to CSV row example:Methods inherited from class biz.devstack.springframework.boot.jpa.crud.CrudService
buildSearchPredicate, createEntityFromDto, deleteEntity, fetchEntities, processEntityAfterRead, processEntityBeforeCreate, processEntityBeforeDelete, processEntityBeforeUpdate, readEntityById, updateEntityFromDto
-
Field Details
-
TOKEN_EXPIRE_IN_SECONDS
-
DEFAULT_PAGE_SIZE_FOR_EXPORT
-
EXPORT_QUERY_INTERVAL_MILLIS
-
saltKey
-
-
Constructor Details
-
ExtendedCrudService
public ExtendedCrudService()
-
-
Method Details
-
importCsvFile
@Transactional public void importCsvFile(org.springframework.web.multipart.MultipartFile multipartFile) -
downloadCsvImportTemplate
public void downloadCsvImportTemplate(jakarta.servlet.http.HttpServletRequest request, jakarta.servlet.http.HttpServletResponse response) -
generateDownloadLinkForExport
-
downloadCsvExportFile
-
getCsvFilenamePrefix
-
getExportCsvHeaders
-
getImportCsvHeaders
-
writeEntityToCsvRow
protected void writeEntityToCsvRow(org.apache.commons.csv.CSVPrinter csvPrinter, Entity entity) throws IOException Export entity to CSV row example:csvPrinter.printRecord(entity.getId(), entity.getEmail(), entity.getFirstName(), entity.getLastName(), entity.getStatus());
- Throws:
IOException
-
processCsvImport
protected void processCsvImport(org.springframework.jdbc.core.JdbcTemplate jdbcTemplate, List<org.apache.commons.csv.CSVRecord> csvRecords) Bulk import entities example:String sql = "INSERT IGNORE INTO t_groups_subscribers(group_id, subscriber_id) VALUES(?, ?)"; jdbcTemplate.batchUpdate(sql, csvRecords, 250, (ps, item) -> { ps.setLong(1, entity.getId()); ps.setLong(2, Long.parseLong(item.get(0))); });
-