Как использовать разбиение на страницы для запросов в Hibernate с конфигурацией на основе Java - PullRequest
0 голосов
/ 27 июня 2018

Это моя конфигурация гибернации:

@Bean
    public LocalContainerEntityManagerFactoryBean entityManagerFactory(final DataSource dataSource,
            final Environment env)
    {
        final LocalContainerEntityManagerFactoryBean entityManagerFactoryBean = new LocalContainerEntityManagerFactoryBean();
        entityManagerFactoryBean.setDataSource(dataSource);
        entityManagerFactoryBean.setJpaVendorAdapter(new HibernateJpaVendorAdapter());
        entityManagerFactoryBean.setPackagesToScan("...");

        final Properties jpaProperties = new Properties();

        jpaProperties.put("hibernate.dialect", env.getRequiredProperty("hibernate.dialect"));
        jpaProperties.put("hibernate.hbm2ddl.auto", env.getRequiredProperty("hibernate.hbm2ddl.auto"));
        jpaProperties.put("hibernate.ejb.naming_strategy", env.getRequiredProperty("hibernate.ejb.naming_strategy"));
        jpaProperties.put("hibernate.show_sql", env.getRequiredProperty("hibernate.show_sql"));
        jpaProperties.put("hibernate.format_sql", env.getRequiredProperty("hibernate.format_sql"));

        entityManagerFactoryBean.setJpaProperties(jpaProperties);

        return entityManagerFactoryBean;
    }

Теперь я хочу сделать запрос на HQL (используя @Query(value = "query")) со стандартными настройками пагинации, такими как смещение и лимит. Я знаю о query.setMaxResults() и query.setFirstResult(), но для этого мне нужен Session (или я?), Но я не использовал сессии для настройки Hibernate.

Можно ли использовать аннотации только для указания смещения и ограничения для запросов? Есть ли способ использовать HQL для программного моделирования query.setMaxResults() и query.setFirstResult()?

1 Ответ

0 голосов
/ 27 июня 2018

Следующий код может вам помочь.

public Page<Product> findAll(Pageable pageable){
    //custom page
    PageRequest customPageable = new PageRequest(pageable.getPageNumber(), 100);
    return productRepository.findAll(customPageable);     
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...