Spring Data JPA使用命名查询时,Pageable排序不起作用

4

我已经开始使用Spring Data JPA,但是遇到了一个问题,搜索了整个网络,但仍然找不到答案。我让存储库工作,甚至分页和排序也可以。然而,当我使用@Query注释中的命名查询而不是让Spring在运行时生成查询时,Pageable对象的可排序部分完全被忽略。我可以确认这一点,因为Hibernate生成的查询在后一种情况下没有"ORDER BY"子句。

public interface TransactionRepository extends JpaRepository<Transaction, Long>
{           
    @Query(name = "Transaction.findParentTransactionsByStatus", countName = "Transaction.findCountParentTransactionsByStatus")
    public Page<Transaction> findParentTransactionsByStatus(@Param(value = "status") TransactionStatus status, Pageable pageable);

有什么想法吗?

1个回答

3

您能发布通过命名查询Transaction.findParentTransactionsByStatus获得的实际HQL吗?

我问这个问题的原因是,我遇到了相同的问题,原因是在我的HQL中有一个多余的结束括号“)”。由于某种原因,它被视为有效的HQL,但是在通过Pageable传递排序时,它没有包括排序列。我的解决方法是删除额外的括号,然后它就起作用了。


这应该是被接受的答案!我遇到了一个孤立的右括号“)”所引起的同样问题。 - SimonH

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接