首页 > 解决方案 > jpa 在哪里选择 userbyusername 方法,因为我没有给出任何实现,我也检查了内部类

问题描述

在我的 spring boot 项目中,我正在使用这个 starter jpa 。我已经在 appliction.properties 中完成了所有与 db 相关的事情。项目运行良好。我不明白这个方法的定义在哪里。我们刚刚定义了一个抽象方法,这个方法是如何工作的?

public interface UserRepository extends JpaRepository<UserEntity, Integer>{
    
    Optional<UserEntity> getUserByUserName(String user);
}

标签: spring-bootjpaspring-data-jpaspring-boot-maven-pluginspring-boot-jpa

解决方案


这是 JPA 存储库的魔力的一部分。我实际上也不知道它是如何工作的细节,我只知道如何使用它。

最终,我认为这与 Spring 代理的接口方式有关。Spring 将在运行时创建一个接口的实例。当方法根据规范命名时,Spring 可以生成适当的方法。

这是一篇很好的文章,详细介绍了如何构造方法名称以进行所需的查询:https ://www.baeldung.com/spring-data-derived-queries 。


推荐阅读