Spring Data JPA — simplifies JPA data access with repository abstraction and query derivation.
1// Repository interface2public interface UserRepository extends JpaRepository<User, Long> {3 List<User> findByName(String name);4 Optional<User> findByEmail(String email);5 @Query("SELECT u FROM User u WHERE u.age > :age")6 List<User> findOlderThan(@Param("age") int age);7 @Query(value = "SELECT * FROM users WHERE active = true", nativeQuery = true)8 List<User> findActiveUsers();9}1011// Usage12@Service13public class UserService {14 @Autowired15 private UserRepository repo;1617 public User createUser(User user) {18 return repo.save(user);19 }20 public Optional<User> findById(Long id) {21 return repo.findById(id);22 }23}
Key features: