Sobes.tech
Назад к вопросам
Senior
5

Как работаешь с базой данных? Hibernate/JPA — как используешь?

Компании, где спрашивали
Velenes.Tech

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

sobes.tech AI

При работе с базой данных через Hibernate/JPA я обычно:

  • Использую Entity-классы для отображения таблиц базы данных.
  • Применяю аннотации JPA (@Entity, @Table, @Id и др.) для определения маппинга.
  • Управляю сессиями через EntityManager или SessionFactory.
  • Использую транзакции для обеспечения атомарности операций, обычно через @Transactional.
  • Пишу JPQL или Criteria API для сложных запросов, чтобы оставаться в рамках ORM.
  • Оптимизирую загрузку данных с помощью LAZY/EAGER fetch стратегий.
  • Внимательно слежу за N+1 проблемами и применяю fetch joins или batch fetching.
  • Для сложных или специфичных запросов могу использовать native SQL.

Пример использования:

@Entity
public class User {
    @Id
    private Long id;
    private String name;
    // геттеры и сеттеры
}

// В сервисе
@Transactional
public User getUser(Long id) {
    return entityManager.find(User.class, id);
}