spring-boot - jpa 在哪里选择 userbyusername 方法,因为我没有给出任何实现,我也检查了内部类
问题描述
在我的 spring boot 项目中,我正在使用这个 starter jpa 。我已经在 appliction.properties 中完成了所有与 db 相关的事情。项目运行良好。我不明白这个方法的定义在哪里。我们刚刚定义了一个抽象方法,这个方法是如何工作的?
public interface UserRepository extends JpaRepository<UserEntity, Integer>{
Optional<UserEntity> getUserByUserName(String user);
}
解决方案
这是 JPA 存储库的魔力的一部分。我实际上也不知道它是如何工作的细节,我只知道如何使用它。
最终,我认为这与 Spring 代理的接口方式有关。Spring 将在运行时创建一个接口的实例。当方法根据规范命名时,Spring 可以生成适当的方法。
这是一篇很好的文章,详细介绍了如何构造方法名称以进行所需的查询:https ://www.baeldung.com/spring-data-derived-queries 。
推荐阅读
- data-structures - 如何判断树中的子节点是左子节点还是右子节点
- python - 具有多重继承(mixin)和混合默认选项的 Python @dataclass
- mariadb - unixODBC 驱动程序管理器“找不到数据源名称”,即使它实际上存在 - MariaDB
- ios - 面临编译故事板的问题
- node.js - 来自 FORM 的值不会传递给 Node JS
- java - 使用 Thymeleaf 和 Spring MVC 编辑对象的最佳方法
- mysql - 使用 NOT IN 检查 ID 是否存在于另一个表中不起作用 - MySQL
- android - 如果值为空,如何将(空格)作为值传递给 api
- php - 如何在函数内部使用变量集
- python - TypeError:需要一个类似字节的对象,而不是'str' - hmac