@Override public List<Table> searchBySourceDatabaseTableName(final String sourceName, final String databaseName, final String tableNamePrefix, final Sort sort, final Pageable pageable) { final StringBuilder queryBuilder = new StringBuilder(SQL_SEARCH_TABLES); if (sort != null && sort.hasSort()) { queryBuilder.append(" order by ").append(sort.getSortBy()).append(" ").append(sort.getOrder().name()); } final TypedQuery<Table> query = em.get().createQuery(queryBuilder.toString(), Table.class); query.setParameter("sourceName", sourceName); query.setParameter("databaseName", databaseName); query.setParameter("isTableNameNull", tableNamePrefix == null ? 1 : 0); query.setParameter("tableName", tableNamePrefix + "%"); if (pageable != null && pageable.isPageable()) { query.setFirstResult(pageable.getOffset()); query.setMaxResults(pageable.getLimit()); } return query.getResultList(); }
private void addSortPageableFilter( final StringBuilder queryBuilder, @Nullable final String filterExpression, @Nullable final Sort sort, @Nullable final Pageable pageable ) { if (sort != null && sort.hasSort()) { queryBuilder.append(" order by ").append(sort.getSortBy()).append(" ").append(sort.getOrder().name()); } if (pageable != null && pageable.isPageable() && Strings.isNullOrEmpty(filterExpression)) { if (sort == null || !sort.hasSort()) { queryBuilder.append(" order by id"); //this must be id, which is used by AuditTable and regular table pagination } queryBuilder.append(" limit ").append(pageable.getOffset()).append(',').append(pageable.getLimit()); } }
@Override public List<Database> searchBySourceDatabaseName(final String sourceName, final String databaseNamePrefix, final Sort sort, final Pageable pageable) { final StringBuilder queryBuilder = new StringBuilder(SQL_SEARCH_DATABASES); if (sort != null && sort.hasSort()) { queryBuilder.append(" order by ").append(sort.getSortBy()).append(" ").append(sort.getOrder().name()); } // entityManager final EntityManager entityManager = em.get(); final TypedQuery<Database> pQuery = entityManager.createQuery(queryBuilder.toString(), Database.class); pQuery.setParameter("sourceName", sourceName); pQuery.setParameter("isNameNull", databaseNamePrefix == null ? 1 : 0); pQuery.setParameter("databaseName", databaseNamePrefix + "%"); if (pageable != null && pageable.isPageable()) { pQuery.setFirstResult(pageable.getOffset()); pQuery.setMaxResults(pageable.getLimit()); } return pQuery.getResultList(); } }
private void addSortPageableFilter( final StringBuilder queryBuilder, @Nullable final String filterExpression, @Nullable final Sort sort, @Nullable final Pageable pageable ) { if (sort != null && sort.hasSort()) { queryBuilder.append(" order by ").append(sort.getSortBy()).append(" ").append(sort.getOrder().name()); } if (pageable != null && pageable.isPageable() && Strings.isNullOrEmpty(filterExpression)) { if (sort == null || !sort.hasSort()) { queryBuilder.append(" order by id"); //this must be id, which is used by AuditTable and regular table pagination } queryBuilder.append(" limit ").append(pageable.getOffset()).append(',').append(pageable.getLimit()); } }
queryBuilder.append(" order by ").append(sort.getSortBy()).append(" ").append(sort.getOrder().name());
getTableDto(name), sortBy, sortOrder != null ? sortOrder.name() : null, offset, limit