Sobes.tech
Назад к вопросам
Junior — Middle
57

Можете объяснить назначение аннотации @Repository в Spring и как она используется в работе с базами данных?

Компании, где спрашивали
Red Collar
СБЕР дейвайсыСБЕР дейвайсы
Северсталь-ИфокомСеверсталь-Ифоком

Ответ от нейросети

sobes.tech AI

Аннотация @Repository в Spring используется для обозначения класса как компонента, отвечающего за доступ к данным (DAO — Data Access Object). Она служит маркером для Spring, чтобы автоматически зарегистрировать этот класс как bean и применить к нему специфическую обработку, например, перевод исключений базы данных в унифицированные исключения Spring (DataAccessException).

Использование @Repository помогает:

  • Организовать слой доступа к данным.
  • Обеспечить автоматическую обработку исключений, связанных с базой.
  • Интегрироваться с механизмами Spring, такими как транзакции.

Пример:

@Repository
public class UserRepository {
    @Autowired
    private JdbcTemplate jdbcTemplate;

    public User findById(Long id) {
        return jdbcTemplate.queryForObject(
            "SELECT * FROM users WHERE id = ?", 
            new Object[]{id}, 
            new BeanPropertyRowMapper<>(User.class));
    }
}