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 Details

    • TOKEN_EXPIRE_IN_SECONDS

      protected static final Integer TOKEN_EXPIRE_IN_SECONDS
    • DEFAULT_PAGE_SIZE_FOR_EXPORT

      protected static final Integer DEFAULT_PAGE_SIZE_FOR_EXPORT
    • EXPORT_QUERY_INTERVAL_MILLIS

      protected static final Integer EXPORT_QUERY_INTERVAL_MILLIS
    • saltKey

      @Value("${jasypt.encryptor.password:80e0492d0b13}") protected String 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

      public String generateDownloadLinkForExport(jakarta.servlet.http.HttpServletRequest request, Pageable pageable)
    • downloadCsvExportFile

      public void downloadCsvExportFile(jakarta.servlet.http.HttpServletResponse response, String token, Long expireAt, Pageable pageable)
    • getCsvFilenamePrefix

      protected String getCsvFilenamePrefix()
    • getExportCsvHeaders

      protected String[] getExportCsvHeaders()
    • getImportCsvHeaders

      protected String[] 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)));
       });