gpt4 book ai didi

java - Spring Data JPA 的查询方法如何生成查询?

转载 作者:行者123 更新时间:2023-12-05 01:54:54 25 4
gpt4 key购买 nike

当在 Spring Data JPA 的特定规则下创建方法时,将创建调用相应查询的方法。

例如,

public interface CustomerJpaRepository implements JpaRepository<Customer, Long>{

public List<Customer> findByName(String name);
}

findByName() 生成类似于下面的查询。

select * from Customer where name = name;

我很好奇这个原理。准确地说,我对解析此方法并将其转换为查询的代码感到好奇。

我查看了实现JpaRepositorySimpleJpaRepository 类的代码,但找不到任何线索。 (当然也有可能我没找到)。

综上所述,当在JpaRepository中声明了一个由特定词组成的方法时,我很好奇内部实际执行这个方法的代码。更具体地说,我想查看使此方法起作用的代码。

如果内部没有代码可以做到这一点(我个人怀疑这可能...),我想知道它是如何详细实现的,如果有说明原理或内部过程的链接或 Material ,请分享相关引用资料。

最佳答案

从spring-data repository方法名创建查询的解析逻辑目前主要声明在包org.springframework.data.repository.query.parser中.

基本上,存储库方法名称字符串被解析为 PartTree ,其中包含 Parts表示定义的抽象查询条件。

然后可以使用 PartTree 创建更具体的查询对象,例如用JpaQueryCreator , 或 RedisQueryCreator ,取决于存储库的类型。

关于java - Spring Data JPA 的查询方法如何生成查询?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70449033/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com