Это моя конфигурация гибернации:
@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()
?