Junior — Middle
How is interaction with the database through repositories in Spring Data JPA implemented?
sobes.tech AI
Answer from AI
In Spring Data JPA, interaction with the database is done through repositories — interfaces that extend special base interfaces of Spring Data, such as JpaRepository.
Main principles:
- Defining the repository interface: You create an interface, for example
UserRepository, which extendsJpaRepository<Entity, ID>. - Automatic implementation: Spring Data automatically generates the implementation of this interface at runtime.
- CRUD methods: The interface already includes standard methods for create, read, update, and delete (save, findById, findAll, delete, etc.).
- Query methods by name: You can declare methods with names that Spring Data parses and generates corresponding queries for, such as
findByUsername(String username).
Example:
import org.springframework.data.jpa.repository.JpaRepository;
public interface UserRepository extends JpaRepository<User, Long> {
User findByUsername(String username);
}
Usage in a service:
@Service
public class UserService {
private final UserRepository userRepository;
public UserService(UserRepository userRepository) {
this.userRepository = userRepository;
}
public User getUserByUsername(String username) {
return userRepository.findByUsername(username);
}
}
Thus, repositories abstract the work with the database, allowing you to work with data as objects without the need to write SQL manually.