当前位置: 首页 > 知识库问答 >
问题:

spring数据JpaRepository方法问题中的Pageable和@Param[2]

桓智敏
2023-03-14

我知道这个问题,但是使用org。springframework。数据:spring数据jpa:1.7.0。RELEASE我仍然有同样的问题(要么对所有参数使用@Param,除了Pageable和Sort键入一次,要么根本不使用!)。我的班级是:

public interface BalanceHistoryRepository extends JpaRepository<BalanceHistory, Long> {
    @Query("select bh from BalanceHistory bh where bh.account.id = :idAccount")
    public BalanceHistory findCurrentBalanceByAccountNumber(PageRequest pageCriteira, @Param("idAccount") long idAccount);
}

编辑

电话:

 Pageable page = new PageRequest(0, 1, Sort.Direction.DESC, "date");
        BalanceHistory bh = balanceHistoryRepository.findCurrentBalanceByAccountNumber(1,page);

方法:

@Query("select bh from BalanceHistory bh where bh.account.id = :idAccount")
public BalanceHistory findCurrentBalanceByAccountNumber(@Param("idAccount") long idAccount, Pageable pageCriteira);

共有2个答案

韦正业
2023-03-14

当我意外地导入了错误的Pageable类时,我遇到了相同的异常。

如果在存储库中也使用PageRequest,也会发生这种情况。

应该是,

import org.springframework.data.domain.Pageable;
龙默
2023-03-14

确保使用Pageable而不是PageRequest,以便将第一个参数识别为不绑定到实际查询的参数。此外,您需要将返回类型更改为页面列表,因为您将返回多个结果。

public interface BalanceHistoryRepository extends CrudRepository<BalanceHistory, Long> {

  @Query("select bh from BalanceHistory bh where bh.account.id = :idAccount")
  Page<BalanceHistory> findCurrentBalanceByAccountNumber(@Param("idAccount") long idAccount, Pageable pageable);
}

这应该能奏效。注意,我们通常建议不要扩展特定于存储的接口,因为它们公开了特定于存储的API,只有在真正必要时才应该公开这些API。

 类似资料:
  • 我有以下存储库: 如上所述的定义工作正常,但如果我切换参数顺序: 我在上下文初始化时遇到以下异常(公布了最有趣的原因): 对我来说这看起来像个虫子。我的感觉对吗?有人知道这方面的报道吗?或者,这可能是记录在案的某个地方和正当的行为? sping-data-jpa版本:

  • 我正在开发一个与spring Batch集成的Spring Boot应用程序。当我使用具有以下数据源属性的独立Spring Boot应用程序时,它工作得很好。但是当我将spring批处理集成到应用程序时,它会产生错误。 我试图通过作业配置中的moveToQueryStep()调用DbServiceImpl中的getCode()。我可以在dbserviceimpl.java“initialize”方

  • 我正在尝试使用spring数据JPA(我的模型类用户)实现一对多关联。java是, 和私人住宅。java是, 我的观点是, 我需要从用户那里获取用户名,从PriVillage获取pname。通过组合我需要显示。现在我在我的存储库中使用下面的查询,即, 如上所述,我需要从一个表中选择用户名,从另一个表中选择pname。我需要如何更改我的查询?

  • 我有spring boot项目(版本< code>2.4.6),带有spring数据依赖项(< code > spring-boot-starter-data-JPA )和postgreSQL驱动程序。 在项目中,我们使用Hibernate和数据存储库,通过以下方式配置: 我还想加入反应性R2DBC。我的计划是在一个特定的地方使用它,在那里我们与其他系统集成,这样的通信通过反应式数据流进行。根据它

  • 我有以下实体: 用户: 新闻来源: UsersRepository和NewsSourcesRepository是来自Spring数据JPA的简单JPA存储。其配置如下: 我的测试在第15行抛出一个LazyInitializationException异常。信息是: 未能延迟初始化角色:新闻的集合。实体。用户。使用者新闻源,无法初始化代理-无会话 如果我将我的测试注释为@Transactional

  • 本文向大家介绍解决springboot无法注入JpaRepository的问题,包括了解决springboot无法注入JpaRepository的问题的使用技巧和注意事项,需要的朋友参考一下 使用内置服务器启动springboot项目时,会从@SpringBootApplication修饰类所在的包开始,加载当前包和所有子包下的类,将由@Component @Repository @Service