Reputation: 877
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
Upvotes: 6
Views: 2344
Reputation: 20135
Its a multi-step process:
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).PartTree
is then passed to a JpaQueryCreator
to generate a JPA CriteriaQuery
instance.CriteriaQuery
instance is passed to the underlying JPA provider (Hibernate, OpenJPA, EclipseLink, etc.) which then generates SQL to be executed.Upvotes: 7