Loading

Quipoin Menu

Learn • Practice • Grow

spring / Spring Data JPA
interview

Q1. What is Spring Data JPA?
Spring Data JPA is a part of the larger Spring Data family that makes it easier to implement JPA-based repositories. It provides a repository abstraction that reduces boilerplate code. You simply define an interface extending JpaRepository, and Spring provides the implementation at runtime.

Q2. What is JpaRepository?
JpaRepository is a Spring Data interface that extends PagingAndSortingRepository. It provides CRUD methods, pagination, and sorting. It also adds JPA-specific methods like flush(), saveAndFlush(), and deleteInBatch().

Q3. How do you define custom query methods in Spring Data JPA?
You can define methods in your repository interface following naming conventions (e.g., findByLastName). Spring Data JPA parses the method name and generates the query. For complex queries, you can use @Query annotation with JPQL or native SQL.

Q4. What is @Query annotation?
@Query allows you to define custom JPQL or native SQL queries on repository methods. Example:
@Query("SELECT u FROM User u WHERE u.email = ?1") User findByEmail(String email);

Q5. What is the difference between CrudRepository and JpaRepository?
CrudRepository provides basic CRUD methods. PagingAndSortingRepository adds pagination and sorting. JpaRepository extends both and adds JPA-specific methods. JpaRepository is the most feature-rich.