Skip to content
Snippets Groups Projects

Fix issue where SQL calls don't use the default limit properly

All threads resolved!
1 file
+ 4
14
Compare changes
  • Side-by-side
  • Inline
@@ -17,9 +17,9 @@ import java.time.Instant;
import java.util.ArrayList;
import java.util.List;
import org.eclipse.microprofile.config.ConfigProvider;
import org.eclipse.microprofile.config.inject.ConfigProperty;
import org.eclipse.microprofile.health.HealthCheckResponse;
import org.eclipsefoundation.persistence.config.EclipsePersistenceRuntimeConfig;
import org.eclipsefoundation.persistence.dao.PersistenceDao;
import org.eclipsefoundation.persistence.dto.BareNode;
import org.eclipsefoundation.persistence.model.ParameterizedCallStatement;
@@ -27,7 +27,6 @@ import org.eclipsefoundation.persistence.model.ParameterizedSQLStatement.Clause;
import org.eclipsefoundation.persistence.model.QueryPlayback;
import org.eclipsefoundation.persistence.model.RDBMSQuery;
import org.eclipsefoundation.persistence.model.SqlBackedPaginationResolver;
import org.eclipsefoundation.persistence.namespace.PersistencePropertyNames;
import org.hibernate.Session;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -50,13 +49,14 @@ import jakarta.transaction.Transactional;
public abstract class BaseHibernateDao implements PersistenceDao {
private static final Logger LOGGER = LoggerFactory.getLogger(BaseHibernateDao.class);
private static final int DEFAULT_MAX_LIMIT = 1000;
private static final String METRIC_NAME = "eclipse_sql_time";
private static final String METRIC_DOCTYPE_TAG_NAME = "type";
private static final String METRIC_OPERATION_TAG_NAME = "operation";
@ConfigProperty(name = "quarkus.micrometer.enabled")
boolean isMetricsEnabled;
@Inject
EclipsePersistenceRuntimeConfig config;
@Inject
EntityManager primaryConnectionManager;
@@ -209,17 +209,7 @@ public abstract class BaseHibernateDao implements PersistenceDao {
*/
@Override
public int getLimit(RDBMSQuery<?> q) {
return q.getLimit() > 0
? Math
.min(q.getLimit(),
ConfigProvider
.getConfig()
.getOptionalValue(PersistencePropertyNames.PERSISTENCE_PAGINATION_LIMIT, Integer.class)
.orElseGet(() -> DEFAULT_MAX_LIMIT))
: ConfigProvider
.getConfig()
.getOptionalValue(PersistencePropertyNames.PERSISTENCE_PAGINATION_LIMIT_MAX, Integer.class)
.orElseGet(() -> DEFAULT_MAX_LIMIT);
return q.getLimit() > 0 ? Math.min(q.getLimit(), config.paginationLimit().defaultValue()) : config.paginationLimit().defaultValue();
}
/**
Loading