Spring Data JPA Repository Pattern (MVC)
Example
java
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.stereotype.Repository;
@Repository
public interface UserRepository extends JpaRepository<User, Long> {
// Custom query methods
Optional<User> findByEmail(String email);
}Guidelines
- Extend
JpaRepository<Entity, ID>for standard CRUD and pagination. - Use method naming conventions for custom queries (e.g.,
findBy...). - Use
@Queryfor custom JPQL/SQL if needed. - Return
Optional<T>for single results,List<T>for collections. - Avoid business logic in repositories; keep them focused on data access.
- Annotate with
@Repository(optional with Spring Boot, but recommended for clarity).