Ответ
Работал с Hibernate как основной ORM (Object-Relational Mapping) в Java-проектах. Это JPA-провайдер, который связывает объектную модель приложения с реляционной базой данных.
Ключевые аспекты работы:
-
Маппинг сущностей: Аннотации
@Entity,@Table,@Column,@OneToMany,@ManyToOne.@Entity @Table(name = "users") public class User { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; @Column(name = "email", nullable = false, unique = true) private String email; @OneToMany(mappedBy = "user", fetch = FetchType.LAZY) private List<Order> orders; } - Управление сессиями и транзакциями: Работа через
EntityManagerилиSessionFactory. - Запросы: Использование HQL (Hibernate Query Language), Criteria API и
@QuerySpring Data JPA. - Производительность: Понимание и применение стратегий загрузки (
FetchType.LAZY/EAGER), кэширования 1-го и 2-го уровня, оптимизация N+1 проблемы черезJOIN FETCHили@BatchSize. - Интеграция: Работа в связке со Spring Data JPA, что значительно упрощает реализацию репозиториев.
Опыт включает работу с различными СУБД: PostgreSQL, MySQL.