使用JPA分页查询时,每页10条数据,当总数据不超过10条时,查询没问题,当总数据超过10条时,就报错了,错误信息:
java.lang.NullPointerException: Cannot invoke "org.hibernate.query.sqm.function.SqmFunctionDescriptor.generateSqmExpression(org.hibernate.query.sqm.tree.SqmTypedNode, org.hibernate.query.ReturnableType, org.hibernate.query.spi.QueryEngine, org.hibernate.type.spi.TypeConfiguration)" because the return value of "org.hibernate.query.sqm.internal.SqmCriteriaNodeBuilder.getFunctionDescriptor(String)" is null
at org.hibernate.query.sqm.internal.SqmCriteriaNodeBuilder.count(SqmCriteriaNodeBuilder.java:685)
at org.hibernate.query.sqm.internal.SqmCriteriaNodeBuilder.count(SqmCriteriaNodeBuilder.java:153)
at org.springframework.data.jpa.repository.support.SimpleJpaRepository.getCountQuery(SimpleJpaRepository.java:781)
at org.springframework.data.jpa.repository.support.SimpleJpaRepository.lambda$readPage$3(SimpleJpaRepository.java:693)
at org.springframework.data.support.PageableExecutionUtils.getPage(PageableExecutionUtils.java:63)
at org.springframework.data.jpa.repository.support.SimpleJpaRepository.readPage(SimpleJpaRepository.java:692)
at org.springframework.data.jpa.repository.support.SimpleJpaRepository.findAll(SimpleJpaRepository.java:474)
at pers.mx.jupiter.jpa.repository.support.BaseRepositoryImpl.findAll(BaseRepositoryImpl.java:163)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:568)
at org.springframework.data.repository.core.support.RepositoryMethodInvoker$RepositoryFragmentMethodInvoker.lambda$new$0(RepositoryMethodInvoker.java:288)
at org.springframework.data.repository.core.support.RepositoryMethodInvoker.doInvoke(RepositoryMethodInvoker.java:136)
at org.springframework.data.repository.core.support.RepositoryMethodInvoker.invoke(RepositoryMethodInvoker.java:120)
at org.springframework.data.repository.core.support.RepositoryComposition$RepositoryFragments.invoke(RepositoryComposition.java:516)
at org.springframework.data.repository.core.support.RepositoryComposition.invoke(RepositoryComposition.java:285)
at org.springframework.data.repository.core.support.RepositoryFactorySupport$ImplementationMethodExecutionInterceptor.invoke(RepositoryFactorySupport.java:628)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)
at org.springframework.data.repository.core.support.QueryExecutorMethodInterceptor.doInvoke(QueryExecutorMethodInterceptor.java:168)
at org.springframework.data.repository.core.support.QueryExecutorMethodInterceptor.invoke(QueryExecutorMethodInterceptor.java:143)
java代码:
controller层:
public Page<ProjectOrder> page(@RequestBody PagingQueryParams<ProjectOrder> params) {
params.fetch(ProjectOrder_.CUSTOMER);
params.fetch(String.format("%s.%s", ProjectOrder_.PROJECT, Project_.PROJECT_CATEGORY));
params.fetch(ProjectOrder_.ACCOUNT);
return wechatProjectOrderService.page(params);
}
service:
@Override
@Transactional(readOnly = true)
public Page<ProjectOrder> page(PagingQueryParams<ProjectOrder> params) {
return projectOrderRepository.findAll(params);
}
gradle依赖:
implementation 'com.dameng:Dm8JdbcDriver18'
implementation 'com.dameng:DmDialect-for-hibernate5.3'
implementation 'com.alibaba:druid'
达梦驱动和方言版本:
dependency("com.dameng:Dm8JdbcDriver18:8.1.1.49")
dependency("com.dameng:DmDialect-for-hibernate5.3:8.1.1.49")
hibernate版本:
id 'org.hibernate.orm' version '6.1.7.Final'
很急,之前数据少没发现这个问题,现在数据多了就出现这个问题了,望各位大神解答一下
同问
同问