Spring Boot - JpaRepository

问题描述 投票:0回答:2

我在示例项目中遇到了下面的这段代码。如果没有正确定义 findItemsById 方法,我无法理解它是如何工作的。该方法在 ItemsRepository 接口中声明,该接口扩展了 JpaRepositiry。

public interface ItemsRepo extends JpaRepository<Items,Long> {
Optional<Items> findItemsById(Long id);
}

在服务类中,它的定义如下。

public Items findItemsById(Long id) throws Throwable {
    return itemsRepo.findItemsById(id).orElseThrow(()-> new UserNotFoundException("items by id "+id+" not found"));
}

在没有实际定义 findItemsById 的情况下它是如何工作的。声明它为可选与此有什么关系吗?

java spring spring-boot spring-data-jpa spring-data
2个回答
1
投票

Spring数据存储库查询派生机制来表达谓词是允许这样做的功能。基本上,查询是通过“解析”方法名称得出的。为此有一些规则(您必须使用实体属性名称)和关键字(

find
by
count
等)。您可以在以下位置查看更多信息:


0
投票

你最好按住Ctrl点击

JpaRepository<Items,Long>
界面并遵循它的方法和它的父方法

在那里你会看到所有的方法并且你可以理解这些方法

欲了解详细信息,您可以关注 spring 文档

© www.soinside.com 2019 - 2024. All rights reserved.