我请求包含排序条件示例(id、desc)的 Order Index Pageable
请求网址
/orders?page=0&size=20&sort=id,desc
错误信息
Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Request processing failed; nested exception is org.springframework.dao.InvalidDataAccessApiUsageException: org.hibernate.hql.internal.ast.QuerySyntaxException: Invalid path: 'order.id' [select order1
from com.mystore.domain.Order order1
order by order.id desc]; nested exception is java.lang.IllegalArgumentException: org.hibernate.hql.internal.ast.QuerySyntaxException: Invalid path: 'order.id' [select order1
from com.mystore.domain.Order order1
order by order.id desc]] with root cause
org.hibernate.hql.internal.ast.QuerySyntaxException: Invalid path: 'order.id' [select order1
from com.mystore.domain.Order order1
我测试更改@Entity(name="otherOrder")但不工作
但另一个实体名称可分页,排序正常,例如卖家、帐户、产品
订单类
@Entity
@Table(name="orders")
data class Order(
@Id @GeneratedValue(strategy = GenerationType.IDENTITY)
val id: Long = 0,
@Column(unique = true)
val merchantUid: String) {}
订单控制器
@GetMapping
@ApiPageable
fun index(searchOrder: SearchOrder, pageable: Pageable): Page<Any> {
return orderService.findAllWithSearchAndPageable(searchOrder, pageable)
}
订单服务
fun findAllWithSearchAndPageable(searchOrder: SearchOrder, pageable: Pageable): Page<Any> {
return orderRepository.findAllWithSearchAndPageable(searchOrder, pageable)
}
orderRepositoryImpl
@Autowired
lateinit var jpaQueryFactory: JPAQueryFactory
fun findAllWithSearchAndPageable(serarchOrder: SearchOrder, pageable: Pageable): PageImpl<Any> {
val query = jpaQueryFactory.select(order)
.from(order)
val orders = querydsl!!.applyPagination(pageable, query).fetch()
return PageImpl(orders as List<Any>, pageable, query.fetchCount())
}
更改 Order -> OtherNameOther 是一种解决方案有另一种解决方案吗?