Как указать BatchSize для JPAQueryFactory, чтобы избежать обходов - PullRequest
1 голос
/ 21 января 2020

Я использую JPAQuery для запросов к базе данных и сталкиваюсь с задержкой при ее извлечении, я также предоставил BatchSize, но, похоже, это не соблюдается. Запрос занимает около 2 секунд, чтобы запросить и получить, однако фактическое время выполнения составляет 19 миллисекунд. Пожалуйста, порекомендуйте.

JPAQueryFactory queryFactory = new JPAQueryFactory(entityManager);
JPAQuery query = queryFactory.select(queryBase.getColumns()).distinct().from(entityPath);

joinConditionsList.forEach(addDynamicJoins(query));
query
    .where(queryBase.getFilters())
    .orderBy(queryBase.getOrderBy())
    .offset(queryBase.getOffset())
    .limit(50000);
long startTime = System.currentTimeMillis();

List<Tuple> list = query.fetch();

Я указал следующее в application.yml.

jpa:
  show-sql: true
  hibernate:
    ddl-auto: none
    batch_size: 234
  naming-strategy: org.hibernate.cfg.ImprovedNamingStrategy
  properties:
    hibernate:
      jdbc:
        lob:
          non_contextual_creation: true
        batch_size: 235
      temp:
        use_jdbc_metadata_defaults: false
  database-platform: org.hibernate.dialect.PostgreSQL9Dialect
...