How spring data generate sql according to method n

2019-02-22 05:01发布

I know spring data jpa can execute sql by two ways.One is execute sql which is included by @Query, the other is parse method name and generate sql. I clone the source code of spring data jpa from github and want to find how spring data generate sql according to method name.But I can't find the class which is related to parse method name.So,could you tell me something about how spring data jpa works about parsing method name?Thanks

1条回答
虎瘦雄心在
2楼-- · 2019-02-22 05:28

Its a multi-step process:

  1. Spring Data JPA generates a proxy class for the repository interface.
  2. The proxy generates a PartTree instance for each repository method using the PartTreeJpaQuery class. The PartTree class is part of the Spring Data Commons module, which is a dependency for the store-specific Spring Data modules (like the Spring Data JPA module).
  3. The PartTree is then passed to a JpaQueryCreator to generate a JPA CriteriaQuery instance.
  4. The CriteriaQuery instance is passed to the underlying JPA provider (Hibernate, OpenJPA, EclipseLink, etc.) which then generates SQL to be executed.
查看更多
登录 后发表回答