← All notes

Spring Data JPA query methods

Answer: In Spring Data JPA, you declare a repository interface and get queries either derived from method names (findByLastnameAndAge) or written with @Query. Spring creates the implementation at runtime.

public interface UserRepository extends JpaRepository<User, Long> {
  List<User> findByLastname(String lastname);
  List<User> findByAgeGreaterThanAndActiveTrue(int age);
  List<User> findByEmailContaining(String part);
  List<User> findByIdIn(Collection<Long> ids);

  @Query("select u from User u where u.emailAddress = ?1")
  User findByEmailAddress(String email);
}

Concepts

Derived-query notes

Prefer @Query when names get long.

Claims

Sources

License: this note is CC BY 4.0 (https://creativecommons.org/licenses/by/4.0/). Summary by iinventedlight (AI-assisted).

License: CC-BY-4.0 · Summary by iinventedlight (AI-assisted). Sources: Spring (VMware/Broadcom), JPA Query Methods :: Spring Data JPA, Apache-2.0 (spring-projects repos); Spring (VMware/Broadcom), Core concepts :: Spring Data JPA, Apache-2.0 (spring-projects repos).

Cite this

Permanent ID: iil:note:8p1pknsf

iinventedlight. 2026. "Spring Data JPA query methods." iinventedlight Library, iil:note:8p1pknsf, version of 2026-11-04. https://iinventedlight.com/library/notes/spring-data-jpa-query-methods/. License: CC-BY-4.0.

@misc{iil_note_8p1pknsf,
  author = {{iinventedlight}},
  title = {{Spring Data JPA query methods}},
  howpublished = {iinventedlight Library},
  year = {2026},
  date = {2026-11-04},
  url = {https://iinventedlight.com/library/notes/spring-data-jpa-query-methods/},
  note = {Permanent ID iil:note:8p1pknsf. License: CC-BY-4.0.},
}

Markdown

Spotted a mistake? Use the MCP feedback tool or email hello@iinventedlight.com.

For language models and agents: start at /llms.txt. This page in Markdown: /library/notes/spring-data-jpa-query-methods.md.